我想创建这个绘图:
因此对于 Tikz 我使用:
\documentclass[a4]{article}
\usepackage{tikz, tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{75}{60}
\begin{figure}
\centering
\begin{tikzpicture}[tdplot_main_coords,scale=3,thick]
% Body
\draw (0,-1/2,0) -- (0,-1/2,1) -- (0,1/2,1) -- (0,1/2,0) -- cycle;
% XZ plane
\def\y{0}
\draw[thin,red,fill=red] (0,\y,-.1) --
(0,\y,1.1) --(1,\y,1.1) --
(1,\y,-.1) -- cycle;
% XY plane
\def\z{0.5}
\draw[thin,green,fill=green] (0,-.6,\z) -- (1,-.6,\z) --
(1,.6,\z) -- (0,.6,\z) --cycle;
\end{tikzpicture}
\caption{Two planes}
\end{figure}
\end{document}
由此产生了如下结果:
我究竟做错了什么?
答案1
红色飞机的顶部在前景,底部在背景,所以不要认为仅使用图层就可以起作用。
一个简单的解决方法是在绘制绿色平面后重新绘制红色平面的顶部,方法是使用
\draw [thin,red,fill=red] (0,\y,\z) -- (1,\y,\z) -- (1,\y,1.1) (1,\y,-.1) -- cycle;
代码:
\documentclass[a4]{article}
\usepackage{tikz, tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{75}{60}
\begin{figure}
\centering
\begin{tikzpicture}[tdplot_main_coords,scale=3,thick]
% Body
\draw (0,-1/2,0) -- (0,-1/2,1) -- (0,1/2,1) -- (0,1/2,0) -- cycle;
\def\y{0}
% XZ plane
\draw[thin,red,fill=red] (0,\y,-.1) --
(0,\y,1.1) --(1,\y,1.1) --
(1,\y,-.1) -- cycle;
% XY plane
\def\z{0.5}
\draw[thin,green,fill=green] (0,-.6,\z) -- (1,-.6,\z) --
(1,.6,\z) -- (0,.6,\z) --cycle;
\draw [thin,red,fill=red] (0,\y,\z) -- (1,\y,\z) -- (1,\y,1.1)
(1,\y,-.1) -- cycle;
\end{tikzpicture}
\caption{Two planes}
\end{figure}
\end{document}