许多线穿过原点

许多线穿过原点

有人能帮我画一个由多条线通过原点组成的图形吗

在此处输入图片描述

类似上图,但没有平面图和虚线部分。我希望创造出一种运动中的线条效果。

答案1

3dtools这是使用库的方法这里。也许有一天,当 GitHub 变得更容易被具有一些数学背景的用户访问时,这个库将成为 CTAN 的一部分...这个库允许我们访问坐标并分析计算与平面的交点。

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{intersections,perspective,3d,3dtools}
\begin{document}
\begin{tikzpicture}[3d view={30}{15}]
 \path (0,0,0) coordinate (O) 
  foreach \X[count=\Y] in {(3,0,0),(2,1,1),(2,0,3),(1,1,3),(0,0,3)}
   {(O) -- \X coordinate (p\Y) coordinate[pos=-0.3] (p-\Y)};
 \path[canvas is xy plane at z=2,fill=blue!30] (
 (-4,-4) coordinate (r1) -- (4,-4) coordinate
 (r2) -- (4,4)  coordinate
 (r3) -- (-4,4) -- cycle;
 \path[name path=edge] (r1) -- (r2)  -- (r3); 
 \foreach \Y in {1,...,5}
 {\path[name path=ray] (p-\Y) -- (p\Y);
 \path[name intersections={of=edge and ray,total=\t},draw,thick]
 \ifnum\t=1
  (p-\Y) -- (intersection-1) coordinate (i-\Y)
 \else 
  (p-\Y) -- (p\Y)
 \fi;
 \pgfmathsetmacro{\itest}{TD("(p\Y)o(0,0,1)")}
 \ifdim\itest pt>0pt
  \pgfmathsetmacro{\tt}{2/TD("(p\Y)o(0,0,1)")}
  \ifdim\tt pt<1pt
   \pgfmathsetmacro{\myint}{TD("\tt*(p\Y)")}
   \draw[thick,dashed] (\myint) -- (i-\Y);
   \draw[thick] (\myint) node[circle,inner sep=1pt,fill]{} -- (p\Y);
  \fi
 \fi
 }
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容