答案1
这是给你的一个开始。你可以用它tikz-3dplot
来获得一些 3d 设置的正交投影。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{intersections,backgrounds}
\begin{document}
\tdplotsetmaincoords{110}{30}
\begin{tikzpicture}[tdplot_main_coords,>=stealth,declare function={xmax=30;},
line join=bevel]
\draw[->] (-2,0,0) coordinate (A) -- (1,0,0) node[pos=1.1]{$x$};
\draw (-2,-5,0) coordinate (P) plot[smooth,variable=\x,domain=0:xmax]
(-2,{-5*cos(\x)},{5*sin(\x)})
coordinate(p1);
\fill[name path=plane,gray,opacity=0.3] (-2.2,{-5*cos(xmax)},-0.5) --
(2.2,{-5*cos(xmax)},-0.5) -- (2.2,{-5*cos(xmax)},3) -- (-2.2,{-5*cos(xmax)},3) -- cycle;
\path[name path=left] (P) -- (A);
\draw[name intersections={of=left and plane,by={B,B'}}]
(P) -- (B') (-2,{-5*cos(xmax)},0) coordinate(B) -- (A) -- (p1) --(B);
\path[name path=right] (P) -- (0,0,0) coordinate (O);
\draw[name intersections={of=right and plane,by={C,C'}}]
(P) -- (C')
({-2+2*(1-cos(xmax))},{-5*cos(xmax)},0) coordinate (C) -- (O) -- (p1) -- (C)
(O) -- (0,{{-5*cos(xmax)}},0) coordinate (O');
\begin{scope}[on background layer]
\draw[gray!30] (B') -- (B) (C') -- (C);
\end{scope}
\draw[->] (O) -- (0,1,0) node[pos=1.3]{$y$};
\draw[->] (O) -- (0,0,1) node[pos=1.3]{$z$};
\foreach \X in {O,P,A,B,C}
{\node[inner sep=1pt,circle,fill,label=below:$\X$] at (\X){};}
\end{tikzpicture}
\end{document}