tikz 中的 3d 箭头,或适合透视的箭头

tikz 中的 3d 箭头,或适合透视的箭头

我正在尝试在 3d 框中绘制 3d 箭头(实际上有很多)。我已经对 3d 框进行了排序,但箭头看起来不太正确。我已使用以下方法设置了轴/投影:

\usepackage{tikz-3dplot}
\tdplotsetmaincoords{90}{90}
\tdplotsetrotatedcoords{0}{20}{70}

但是箭头不遵循投影,它们是二维的,但在盒子的 xy 平面上看起来并不平坦,它们相对于页面仍然是平坦的。有人知道如何解决这个问题吗?

另外,理想情况下,我正在寻找一个大的 3D 块箭头,但我找不到任何这样的例子,有什么想法吗?

干杯。

编辑:根据要求,这里是 MWE:

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\tikzset{>=latex}

\usepackage{tikz-3dplot}
\tdplotsetmaincoords{90}{90}
\tdplotsetrotatedcoords{0}{20}{70}

\begin{document}
\begin{tikzpicture}
\begin{scope}[fill={rgb:red,1;green,2;blue,10},fill opacity=0.4]
\draw [fill] (0,0,0)--(4,0,0)--(4,4,0)--(0,4,0)--cycle;
\draw [fill] (0,0,0)--(4,0,0)--(4,0,1)--(0,0,1)--cycle;
\draw [fill] (0,0,0)--(0,4,0)--(0,4,1)--(0,0,1)--cycle;
\draw [fill] (4,0,0)--(4,4,0)--(4,4,1)--(4,0,1)--cycle;
\draw [fill] (4,4,0)--(0,4,0)--(0,4,1)--(4,4,1)--cycle;
\draw [fill] (0,0,1)--(4,0,1)--(4,4,1)--(0,4,1)--cycle;
\end{scope}

\begin{scope}[->, ultra thick]
\draw[->] (2,2,1/2)--++(180:1.5)--++(0:3);
\end{scope}
\end{tikzpicture}
\end{document}

结果:

希望您能发现问题,箭头看起来并不在盒子里,只是被放在了顶部。

答案1

您没有使用已设置的主坐标。要使用它,请在[tdplot_main_coords]后面添加\begin{tikzpicture}

\begin{tikzpicture}[tdplot_main_coords]

如果你这样做,你会得到一个从中心向上的箭头的蓝色矩形,因为的第一个参数\tdplotsetmaincoords是坐标系旋转的角度(以度为单位)X轴,第二个参数旋转轴。阅读tikz-3dplot文档以获得更详细的解释:http://mirrors.ctan.org/graphics/pgf/contrib/tikz-3dplot/tikz-3dplot_documentation.pdf

90-90 视图

如果你更改\tdplotsetmaincoords{90}{90}为,\tdplotsetmaincoords{100}{20}你将会得到以下结果:

100-20 视图

相关内容