圆圈内的射线

圆圈内的射线

我正在尝试创建与发布在这里(见回复)但中心点与 (0,0) 不同。有什么建议吗?

答案1

当然。定义一个应为中心点的坐标,首先在所有命令中说明这一点,然后+在每个坐标前添加一个。加号使以下坐标相对于没有加号的坐标,这正是您想要的。请参阅 Heiko 的修改代码,我还在其中添加了 (0,0) 处的红色圆圈,以证明中心确实不再存在,而是在定义的坐标 (A) 处。

\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
    \coordinate (A) at (1,1);
  \def\Radius{2.5cm}
  \draw
    \foreach \a in {10, 20, ..., 350} {
      (A) -- +(\a:\Radius)
    }
    +(0, 0) circle[radius=\Radius]
    %
    +(0, 0) -- +(0:3.75cm)
    +(0, 0) -- +(10:3.75cm)
    %
    +(5:4cm) node {\SI{10}{\degree}}
    +(-30:3.7cm) node {\SI{360}{\degree}}
  ;

  \def\Radius{3.5cm}
  \draw[->]
    (A)
    +(0:\Radius) arc[start angle=0, end angle=10, radius=\Radius]
  ;

  \def\Radius{3cm}
  \draw[->]
    (A)
    +(0:\Radius)
    arc[start angle=0, end angle=180, radius=\Radius]
    arc[start angle=180, end angle=360, radius=\Radius]
  ;
    \fill [red] (0,0) circle (2pt);
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

答案2

还有另一种可能性:定义一个pic,然后将其放置在您想要的位置。只有当您需要多次放置轮子时,这才有趣。

\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usepackage{siunitx}
\tikzset{
  wheel/.pic={
    \def\Radius{2.5cm}
    \draw
      \foreach \a in {10, 20, ..., 350}{
        (0,0) -- +(\a:\Radius)
      }
      (0, 0) circle[radius=\Radius]
      (0, 0) -- +(0:3.75cm)
      (0, 0) -- +(10:3.75cm)
      (5:4cm) node {\SI{10}{\degree}}
      (-30:3.7cm) node {\SI{360}{\degree}}
    ;

    \def\Radius{3.5cm}
    \draw[->]
      (0:\Radius) arc[start angle=0, end angle=10, radius=\Radius]
    ;

    \def\Radius{3cm}
    \draw[->]
      (0:\Radius)
      arc[start angle=0, end angle=180, radius=\Radius]
      arc[start angle=180, end angle=360, radius=\Radius]
    ;
  }
}

\begin{document}
\begin{tikzpicture}
  \fill[orange] (-1,-1) rectangle (11,3);
  \path  (0,0) pic{wheel} (10,0) pic{wheel};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容