使用 tikz 将平面和线条添加到 3D 图

使用 tikz 将平面和线条添加到 3D 图

我目前有以下代码和结果。

\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{3d}

\begin{document}

% Draw a 3D coordinate system

\begin{center}
\begin{tikzpicture}[x  = {(1cm,0cm)},
                    y  = {(0.4cm,0.6cm)},
                    z  = {(0cm,1cm)},
                    scale = 1,
                    color = {black}]

\begin{scope}[canvas is xy plane at z=0]
  % x-axis
  \draw[black,->] (0,0) -- (5,0) node (x-axis) [right] {$x$};
  \draw[dashed, ->] (-5,0) -- (0,0);
  % y-axis
  \draw[dashed, black,->] (0,0) -- (0,5) node (y-axis) [above] {$y$};
  \draw[black,->] (0,-5) -- (0,0);

\end{scope}

\begin{scope}[canvas is yz plane at x=0]
  % z-axis
  \draw[black,->] (0,0) -- (0,5) node (z-axis) [above] {$z$};
  \draw[dashed,black,->] (0,-5) -- (0,0);
\end{scope}

\end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

我想将 z=1 平面添加到此图像中,以及一条通过原点的线。有人能解释一下怎么做吗?我对 tikz 还很陌生,一直在尝试推断我在其他帖子中读到的信息,但似乎无法弄清楚如何实现我想要的效果。我的最终目标是实现类似于加密 SE 帖子。

答案1

这是单行的示例。

\documentclass[11pt,tikz,border=3.14pt]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{30}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (O) at (0,0,0);
\fill[blue!50,opacity=0.5] (-3,0.5,1) -- (3,0.5,1) -- (3,3,1) -- (-3,3,1) -- cycle;
\draw[thick,red] (-1.25,-0.75,-1.25) -- (2.5,1.5,2.5);
\fill[blue!50,opacity=0.5] (-3,0.5,1) -- (3,0.5,1) -- (3,-3,1) -- (-3,-3,1) -- cycle;
    \draw[->] (O) --++ (3,0,0) node[below] {$x$};
    \draw[->] (O) --++ (0,3,0) node[below] {$y$};
    \draw[->] (O) --++ (0,0,3) node[right] {$z$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

这种方法之所以有效,是因为我把平面分成两部分,这样只有线条的相关部分才会被“隐藏”。但是,一旦有多条线条,这种方法就会变得非常麻烦。人们仍然可以想出一些东西,但更干净的方法是切换到渐近线。

相关内容