我正在尝试创建与发布在这里(见回复)但中心点与 (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}