使用 tikz-3dplot 绘制绕 z 轴旋转并朝向 xy 平面的矢量留下的路径

使用 tikz-3dplot 绘制绕 z 轴旋转并朝向 xy 平面的矢量留下的路径

我有一个沿 z 轴的矢量,我想显示该矢量的点沿 xy 平面螺旋向下的轨迹。理论上,该轨迹应在球体表面上描绘,球体中心位于该矢量的原点。我该如何绘制它?

我有一张类似的图片,你可以看到红色矢量旋转留下的路径。

提前感谢您的宝贵帮助。

在此处输入图片描述

答案1

我们不知道生成螺旋的函数,所以这只是一个例子,我希望它可以根据需要轻松修改。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}

\tdplotsetmaincoords{60}{120}
%\tdplotsetmaincoords{45}{130}

\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,tdplot_main_coords]  
  \def\r{2} % sphere radius
  % sphere
  \draw[gray]   (0,0,0) circle (\r cm);
  % axes
  \draw[dashed] (0,0,0)  -- (\r,0,0);
  \draw[dashed] (0,0,0)  -- (0,\r,0);
  \draw[dashed] (0,0,0)  -- (0,0,\r);
  % spiral
  \draw[thick,red] plot[domain=0:720,samples=100,smooth] ({\r*cos(\x)*cos(0.125*\x)},{\r*sin(\x)*cos(0.125*\x)},{\r*sin(0.125*\x)});
  % vectors
  \foreach\x in {20,120,350,660}
  {%
    \draw[blue,-latex] (0,0,0) -- ({\r*cos(\x)*cos(0.125*\x)},{\r*sin(\x)*cos(0.125*\x)},{\r*sin(0.125*\x)});
  }
  % axes again
  \draw[-latex] (\r,0,0) -- (1.5*\r,0,0) node [left]  {$x$};
  \draw[-latex] (0,\r,0) -- (0,1.5*\r,0) node [right] {$y$};
  \draw[-latex] (0,0,\r) -- (0,0,1.5*\r) node [above] {$z$};
\end{tikzpicture}
\end{document}

如果你切换提供的两组3d坐标,\tdplotsetmaincoords你可以得到这些图片: 在此处输入图片描述

编辑:tikz-3dplot按照原帖者的请求将其包括在内。

相关内容