如何实现 3D tikz / pgfplots 的正确重叠?

如何实现 3D tikz / pgfplots 的正确重叠?

这是一个简单的 3D PGF 图:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3 [color=black,line width=2.0pt]
 table[row sep=crcr] {
0   0   -1\\
0   0   1\\
};
\addplot3 [color=gray,line width=2.0pt]
 table[row sep=crcr] {
1   1   0\\
1  -1   0\\
-1  -1  0\\
-1  1   0\\
1  1    0\\
};
\end{axis}
\end{tikzpicture}
\end{document}

3D 绘图

z 轴上的线应该穿过 xy 矩形的中间。但如您所见,矩形绘制在线的顶部,因为它是最后绘制的。在这种情况下如何实现正确的重叠?我的实际图是用 matlab2tikz 生成的,但遇到了同样的问题。

答案1

我认为这是不可能的;据我所知,pgfplots这不是真正的 3D 渲染引擎。一种不成熟的方法是将线分成两部分:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot3 [color=black,line width=2.0pt]
    table[row sep=crcr] {
    0   0  -1\\
    0   0   0\\
    };
    \addplot3 [color=gray,line width=2.0pt]
    table[row sep=crcr] {
    1   1   0\\
    1  -1   0\\
    -1  -1  0\\
    -1  1   0\\
    1  1    0\\
    };
    \addplot3 [color=black,line width=2.0pt]
    table[row sep=crcr] {
    0   0   0\\
    0   0   1\\
    };
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容