
Gibt es einen Unterschied zwischen diesen beiden Tikz-Bibliotheken für 3D-Diagramme?
Ich habe die Dokumentation für gefunden tikz-3dplot
aufCTAN, aber nichts für die \usetikzlibrary{3d}.
Könnte damit zusammenhängenDokumentation der Tikz 3D-Bibliothek
Antwort1
tikz-3dplot
(ohne ein s
am Ende) lädt die 3d
Bibliothek (und auch calc
) automatisch. Es verfügt also über alle Funktionen der 3d
Bibliothek, einfach weil es sie lädt. Darüber hinaus verfügt es über Befehle, mit denen man eine 3D-Ansicht wie \tdplotsetmaincoords
und installieren kann \tdplotsetrotatedcoords
, und ermöglicht die Erstellung echter 3D-Diagramme (daher der Name). Andere Möglichkeiten zur Installation einer 3D-Ansicht in TikZ müssen die perspective
Bibliotheken (der Schlüssel heißt 3d view
) oder pgfplots
(der Schlüssel ist view
und ähnliche Schlüssel) verwenden. Die Konventionen für die Blickwinkel unterscheiden sich leider zwischen diesen Paketen/Bibliotheken.
Der Hauptzweck der 3d
Bibliothek besteht darin, zu Koordinatenebenen (wie canvas is xy plane at z=<z>
) zu wechseln, was natürlich am meisten Sinn macht, wenn Sie eine richtige 3D-Ansicht erstellt haben.
3D-Koordinaten werden von Ti unterstütztkZ ohne weiteres. Allerdings ist die vordefinierte Ansicht nicht orthographisch. Sie können dies beheben, indem Sie x
, y
und sorgfältig auswählen z
, aber es ist viel bequemer, dafür die oben genannten Werkzeuge zu verwenden.
Dieses Beispiel soll einige dieser Aussagen verdeutlichen.
\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}
Das Bild ganz links ist keine orthographische Projektion eines Würfels, zeigt aber, dass man 3D-Koordinaten in Ti verwenden kann.kZ gleich. Die nächsten Bilder zeigen den Würfel in derselben Projektion tikz-3dplot
und Perspektive, und man kann sehen, dass die Konventionen für den Breitengradwinkel (normalerweise Theta genannt) unterschiedlich sind. Das Beispiel veranschaulicht auch eine, vielleicht die wichtigste, Anwendung der 3d
Bibliothek: etwas auf eine Koordinatenebene projizieren. Dies funktioniert mit Knoten, wie dargestellt, aber natürlich auch mit Zeichnungen und externen Grafiken.
Beachten Sie, dass der Hauptzweck der Perspektivbibliothek nicht darin besteht, eine 3D-Ansicht zu installieren. Vielmehr ermöglicht sie, wie der Name schon sagt, die Installation einer 3-Punkt-Perspektivansicht. Diese Diskussion geht jedoch über den Rahmen dieser Antwort hinaus.