我正在尝试在 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
如果你更改\tdplotsetmaincoords{90}{90}
为,\tdplotsetmaincoords{100}{20}
你将会得到以下结果: