
3D プロット用のこれら 2 つの tikz ライブラリには違いがありますか?
tikz-3dplot
私はのドキュメントを見つけましたCTANただし、\usetikzlibrary{3d} にはありません。
関連している可能性があるtikz 3d ライブラリのドキュメント
答え1
tikz-3dplot
(s
末尾に が付かない) は3d
ライブラリ (およびcalc
) を自動的に読み込みます。その3d
ため、ライブラリを読み込むだけで、ライブラリのすべての機能を使用できます。さらに、 や などの 3D ビューをインストールできるコマンドがあり\tdplotsetmaincoords
、\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座標を使用できることを示しています。けtikz-3dplot
Z をすぐに使用できます。次の図は、同じ投影法と視点で立方体を示していますが、緯度角 (通常はシータと呼ばれます) の規則が異なることがわかります。この例では3d
、ライブラリの 1 つの (おそらく主な) アプリケーション、つまり座標平面に何かを投影する方法について説明しています。これは、図に示すようにノードで機能しますが、もちろん描画や外部グラフィックスでも機能します。
パースペクティブ ライブラリの主な目的は、3D ビューをインストールすることではないことに注意してください。むしろ、その名前が示すように、3 点透視図ビューをインストールできるようにしますが、この説明はこの回答の範囲を超えています。