TikZ:为空间金字塔(四面体)定义三维坐标轴

TikZ:为空间金字塔(四面体)定义三维坐标轴

在此处输入图片描述

我该如何指定这样的坐标轴?那么,例如 A(0,0,0) 或 C(a, a, 0)。

x 轴和 y 轴之间的角度是多少?是的,坦白说我只是好奇。可能不是简单的 30°;而是 26.5° 左右。
有特定的标准吗?

我测量了表达式 AB = 12.8cm,AC = 12.5cm - 也许两者应该完全相同的长度 (?)。

注意:我主要感兴趣的是如何正确设置坐标轴(与 tkzeuclide 或 tikz-3d 等包不同)。

我可以大致获得所示的表示
z={(0,1)}, y={({0.9*cos(10)},{0.9*sin(10)})}, x={({cos(16.5)},{-sin(16.5)})}

但我不太理解这些:“z = ...”必须位于 y 和 x 之前。我不知道为什么。

任务并不只是画一个四面体。如果我有坐标系,我就能做到这一点。

\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}[%scale=0.7,
    z={(0,1)},
y={({0.9*cos(10)},{0.9*sin(10)})},
x={({cos(16.5)},{-sin(16.5)})}
]

\begin{scope}[-latex]
\foreach \P/\s/\Pos in {(1,0,0)/x/below, (0,1,0)/y/left, (0,0,2)/z/right} 
\draw[] (0,0,0) -- \P node[\Pos, pos=0.9,inner sep=2pt]{$\s$};
\end{scope}

\end{tikzpicture}

\end{document}

答案1

tikz-3dplot确实正确设置了坐标。为什么输出取决于您设置z第一个还是最后一个?这是因为如果您说z={(0,1)},那么z向量将由给出z=0*x+1*y=y,其中x和分别是和方向y上的单位向量。因此,如果您在设置和之前设置,您将得到,但如果您在之后设置它,您将得到。这一切都在中解释过xyzxyz=y_oldz=y_new这个很好的答案,其中还解释了对于分量具有单位的向量,结果会有很大不同。(当然,也可以有混合。)那么顺序就无关紧要了,具有单位的向量(a cm, b cm)将始终a cm在水平方向和垂直方向。这可能是设置具有单位的向量b cm的原因。tikz-3dplot

它们的分量是视角的函数。它们是 SO(3) 矩阵的列,正如它们应该的那样。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot} 
\begin{document} 
\tdplotsetmaincoords{70}{100} 
\begin{tikzpicture}[line join=round,tdplot_main_coords,declare function={a=5;}] 
\begin{scope}[canvas is xy plane at z=0,transform shape]
 \path foreach \X [count=\Y] in {A,B,C}
 {(\Y*120:{a/(2*cos(30))}) coordinate(\X)};
\end{scope}
\path (0,0,{a*cos(30)}) coordinate (D);
\draw foreach \X/\Y [remember=\X as \Z (initially D)] in {A/B,B/C,C/D,D/A}
 {(\X) -- (\Z) -- (\Y)};
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,我并不是说这是一个正多面体。

相关内容