使用 \tikzset{xyplane/.estyle={cm={a,b,c,d,(e,f)}}}

使用 \tikzset{xyplane/.estyle={cm={a,b,c,d,(e,f)}}}

我尝试模仿纸张上,并且在 xy 平面上投射物体时遇到麻烦。

绕 x 轴以角度 a 旋转的矩阵为:

[1,0]

[0,cos(a)]

但如果 a=pi/2,则该矩阵等于:

[1,0]

[0,0]

并且\tikzset{xyplane/.estyle={cm={1,0,0,0,(0,0)}}}无法工作。如何处理?

附言:可以在文章中使用 Latex 吗?我的矩阵非常非常丑陋……

PS2:有人知道当我们不使用此命令时tikz-3dplot适用于的自动角度吗?我的意思是,如果我们使用并绘制一个基础,则 z 轴是不可见的,因为它垂直于屏幕,但如果我们不使用并绘制一个基础,则 z 轴是可见的。应用什么角度 ax 和 az 才能获得相同的结果?等效地:使用什么系统 {a,b,c,d,(e,f)}。不确定我是否清楚...\tdplotsetmaincoords{ax}{az}\tdplotsetmaincoords{0}{0}\tdplotsetmaincoords{0}{0}

提前致谢

答案1

您使用的公式不正确。您使用的公式是 3D 空间的旋转矩阵 Rx 的 2x2 部分。cm键旋转 2D 点。因此,如果您将xy平面旋转x90 度,其y分量就会消失。因此到目前为止没有任何问题。

如果要在xy平面上旋转,则需要绕假设z轴旋转,具体如下

[ cos(a) sin(a)]*[x] + [xshift] = [xnew]
[-sin(a) cos(a)] [y]   [yshift]   [ynew]

就相关值而言,cm这是

cm={cos(a),sin(a),-sin(a),cos(a),{(xshift,yshift)}}

相关内容