3d tikz图片错误重叠

3d tikz图片错误重叠

我想创建这个绘图:

目标输出

因此对于 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}

由此产生了如下结果: Tikz 输出

我究竟做错了什么?

答案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}

相关内容