之上@MS-SPO 的建议,我在这里包含了重构的代码。我仍然需要添加一些刻度、指示时间的标签和小时节点(12、3、6、9)。我确实想出了添加节点的方法,但它们并不是我想要的。
\documentclass[10pt,border=5mm,tikz]{standalone}
\usepackage{tikz}
\begin{document}
% ~~~ refactored code ~~~~~~~~~~~~~~~
\begin{tikzpicture}
% Grid
\foreach \i in {1,2,...,6}
% ~~~ make it visible for me ~~~~
\draw[lightgray!40!red, dotted] (0,0) circle(\i);
\foreach \i in {0,90,...,3}
\draw[lightgray!20!blue, dotted] (0,0) -- (\i:7.2)
node[shape=circle,scale=0.7,pos=0.83,very thick,black,fill= white]{\i};
\begin{scope}[black, very thick, cap=round, rounded corners=1pt]
% ARCS
%--- Inner arc EH ---%
\draw[loosely dotted] (180:2) arc(180:270:2);
%--- The full circle ---%
\draw (0:3) arc(0:360:3);
%--- Arcs w/ rad = 4 ---%
\foreach \v/\w in {90/60, 330/360, 240/270, 150/180}
\draw ( \v:4) arc( \v: \w:4);
%--- Arcs w/ rad = 5 ---%
\foreach \v/\w in {60/30, 300/330, 210/240, 120/150}
\draw ( \v:5) arc( \v: \w:5);
%--- Arcs w/ rad = 6 ---%
\foreach \v/\w in {30/0, 270/300, 180/210, 90/120}
\draw ( \v:6) arc( \v: \w:6);
%--- Outer arc LH ---%
\draw[loosely dotted] (90:7) arc(90:180:7);
% LINES
\foreach \w in {0,30,90,120,90,120,180,210,270,300}
\draw (\w:3) -- (\w:6);
\foreach \w in {60,150,240,330}
\draw (\w:3) -- (\w:5);
\foreach \w in {180,210,240,270}
\draw [loosely dotted] (\w:2) -- (\w:3);
\foreach \w in {30,180,120}
\draw [loosely dotted] (\w:6) -- (\w:7);
\draw[loosely dotted] (150:5) -- (150:7);
\end{scope}
\end{tikzpicture}
\end{document}