如何使用 TikZ 在 LaTeX 中的 3D 图中旋转弧线?

如何使用 TikZ 在 LaTeX 中的 3D 图中旋转弧线?

问题半球体,x 轴上每 5 度有一条线,我正在尝试重新创建下图: 在此处输入图片描述

我目前拥有的代码是:

\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta, 3d, quotes}
\tikzset{
  math nodes/.style={execute at begin node=$, execute at end node=$},
  edges/.style={every edge/.append style={#1}}}
\begin{document}

\begin{tikzpicture}[
  thin,
  > = {Latex [round]},
  x = (-10:2.75cm), y = (90:3cm), z = (-140:1.8cm),
  axis/.style={very thick, red!50!black},
  math nodes, at end,
  dot/.style={shape=circle, draw, inner sep=+0pt, minimum size=+2.5pt},
  ang 90/.style={thick, nodes=fill, nodes={name=n\pos}},
  pos 9/.style=fill
]
\coordinate (O) at (0, 0, 0);
\path[axis, ->] (O) edge["y" right] (1.3, 0,   0  )
                    edge["z" above] (0,   1.3, 0  ) [-]
                    edge            (0,   0,  1.4 ) [edges=dashed]
                    edge           (-1.3, 0,   0  )
                    edge           ( 0,  -1.3, 0  )
                    edge           ( 0,   0,  -1.3);

\foreach \ang in {10, 20, ..., 90}
  \draw[ang \ang/.try]
    (xyz spherical cs: radius=0, latitude=\ang) % start point for arc
    [canvas is xy plane at z=\ang/90] % arc is 2d → XY cs in xz plane
    circle[start angle=0, delta angle=180, radius=cos \ang];

\foreach \ang in {0, 10, ..., 180}
  \draw[ang \ang/.try]
    (xyz spherical cs: radius=1, latitude=0, longitude=\ang) % start point for arc 
    arc[start angle=180, delta angle=180, radius=1]
      node foreach \pos in {1, ..., 18} [dot, pos \pos/.try, pos=\pos/19]{};

% Top and bottom nodes (no need to do an arc with radius 0 or place these 18 times)
\node foreach \y in {-1, 1} [dot, pos 9] at (0, \y, 0) {};

% z-axis on top of globe but not on top of dot
path[axis, ->] (n9) edge["x" below left] +(0, 0, 1.4);
\end{tikzpicture}
\end{document}

输出:

![在此处输入图片描述

圆圈已就位,圆弧从正确的点开始,但我不确定如何旋转圆弧以实现所需的输出。有什么想法吗?

相关内容