Unterschied zwischen \usetikzlibrary{3d} und \usepackage{tikz-3dplot}

Unterschied zwischen \usetikzlibrary{3d} und \usepackage{tikz-3dplot}

Gibt es einen Unterschied zwischen diesen beiden Tikz-Bibliotheken für 3D-Diagramme?

Ich habe die Dokumentation für gefunden tikz-3dplotaufCTAN, aber nichts für die \usetikzlibrary{3d}.

Könnte damit zusammenhängenDokumentation der Tikz 3D-Bibliothek

Antwort1

tikz-3dplot(ohne ein sam Ende) lädt die 3dBibliothek (und auch calc) automatisch. Es verfügt also über alle Funktionen der 3dBibliothek, einfach weil es sie lädt. Darüber hinaus verfügt es über Befehle, mit denen man eine 3D-Ansicht wie \tdplotsetmaincoordsund 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 perspectiveBibliotheken (der Schlüssel heißt 3d view) oder pgfplots(der Schlüssel ist viewund ähnliche Schlüssel) verwenden. Die Konventionen für die Blickwinkel unterscheiden sich leider zwischen diesen Paketen/Bibliotheken.

Der Hauptzweck der 3dBibliothek 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, yund 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}

Bildbeschreibung hier eingeben

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-3dplotund 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 3dBibliothek: 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.

verwandte Informationen