
3D 플롯을 위한 두 tikz 라이브러리 사이에 차이점이 있습니까?
tikz-3dplot
에 대한 문서를 찾았습니다.CTAN, 그러나 \usetikzlibrary{3d}에는 아무것도 없습니다.
다음과 관련이 있을 수 있습니다.tikz 3d 라이브러리 문서
답변1
tikz-3dplot
( s
결국 없이) 3d
라이브러리(및 calc
)가 자동으로 로드됩니다. 따라서 라이브러리를 로드하기 때문에 라이브러리의 모든 기능을 갖습니다 3d
. 또한 \tdplotsetmaincoords
및 과 같은 3D 보기를 설치할 수 있는 명령이 있으며 \tdplotsetrotatedcoords
실제 3D 플롯(따라서 이름)을 수행하는 것을 의미합니다. Ti에 3D 뷰를 설치하는 다른 방법케이perspective
Z는 라이브러리(키는 이라고 함 3d view
) 또는 pgfplots
(키는 과 유사한 키)를 사용하는 것입니다 view
. 불행하게도 이러한 패키지/라이브러리마다 뷰 각도에 대한 규칙이 다릅니다.
라이브러리 의 주요 목적은 3d
좌표 평면(예: canvas is xy plane at z=<z>
)으로 전환하는 것입니다. 물론 이는 적절한 3D 뷰를 설정한 후에 가장 적합한 것입니다.
3D 좌표는 Ti에서 지원됩니다.케이더 이상 고민하지 않고 Z. 그러나 미리 정의된 뷰는 직교가 아닙니다. x
, y
및 를 신중하게 선택하여 이를 수정할 수 있지만 z
, 이를 위해서는 위에서 언급한 도구를 사용하는 것이 훨씬 더 편리합니다.
이 예는 이러한 진술 중 일부를 설명하기 위한 것입니다.
\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{perspective}
\begin{document}
\begin{tikzpicture}[cube/.style={insert path={
(-1,-1,-1) edge ++(0,0,2) -- (1,-1,-1) edge ++(0,0,2)
-- (1,1,-1) edge ++(0,0,2) -- (-1,1,-1) edge ++(0,0,2) -- cycle
(-1,-1,1) -- (1,-1,1) -- (1,1,1) -- (-1,1,1) -- cycle
}}]
\def\LabelPlanes{
\node[canvas is xy plane at z=1,transform shape]{xy plane};
\node[canvas is xz plane at y=1,transform shape]{xz plane};
\node[canvas is yz plane at x=1,transform shape]{yz plane};}
\begin{scope}[local bounding box=A]
\draw[cube];
\LabelPlanes
\end{scope}
\path (A.south) node[below]{plain Ti\emph{k}Z};
%
\tdplotsetmaincoords{70}{110}% theta,phi
\begin{scope}[xshift=4cm,tdplot_main_coords,local bounding box=B]
\draw[cube];
\LabelPlanes
\end{scope}
\path (B.south) node[below]{\texttt{tikz-3dplot}};
%
\begin{scope}[xshift=8cm,3d view={110}{20},% phi,90-theta of tikz-3dplot
local bounding box=C]
\draw[cube];
\LabelPlanes
\end{scope}
\path (C.south) node[below]{\texttt{perspective}};
\end{tikzpicture}
\end{document}
가장 왼쪽 그림은 큐브의 직교 투영이 아니지만 Ti에서 3D 좌표를 사용할 수 있음을 보여줍니다.케이바로 Z. 다음 그림은 동일한 투영 tikz-3dplot
및 원근감의 큐브를 보여 주며 위도 각도(일반적으로 세타라고 함)에 대한 규칙이 다르다는 것을 알 수 있습니다. 이 예는 또한 라이브러리의 주요 응용 프로그램 중 하나인 3d
좌표 평면에 무언가를 투영하는 방법을 보여줍니다. 이는 그림과 같이 노드에서 작동하지만 물론 도면 및 외부 그래픽에서도 작동합니다.
Perspective 라이브러리의 주요 목적은 3D 뷰를 설치하는 것이 아닙니다. 오히려 이름에서 알 수 있듯이 3점 투시도를 설치할 수 있지만 이 논의는 이 답변의 범위를 벗어납니다.