这是一个简单的 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}
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}