我正在尝试绘制这个名为 Kolb Circle 的图像。我尽了最大努力,但还是卡住了。
预期输出
平均能量损失
\documentclass[tikz,12pt]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \r in {1,...,5}
\draw[ thick] (0,0) circle (\r);
\foreach \r in {2, 4,...,10}
\draw (.5*\r,0) node[inner sep=1pt,below=3pt,rectangle,fill=white] {$\r{0}\%$};
\foreach \a in {0, 90,...,359}
\draw[thick] (0, 0) -- (\a:5);
\node(R0) at (5.5,0){RO};
\node(R0) at (-5.5,0){AE};
\node(R0) at (0,5.5){CE};
\node(R0) at (0,-5.5){AC};
\end{tikzpicture}
\end{document}
答案1
你快到了,不是吗?不幸的是,我无法从你的屏幕截图中读取刻度,但如果你告诉我它们是什么,我会很乐意添加它们。现在我猜它们。
\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[my ticks/.style={postaction={decorate,
decoration={ markings,% switch on markings
mark=between positions 0 and 1 step 2.5mm
with
{
\pgfmathtruncatemacro{\myX}{mod(\pgfkeysvalueof{/pgf/decoration/mark
info/sequence number},4)-1}
\ifnum\myX=0
\else
\pgfmathtruncatemacro{\myL}{10+2*\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}}
\draw (0pt,0pt) -- (0pt,-4pt) node[pos=2,font=\tiny]{\myL};
\fi
}
}}}]
\foreach \r in {1,...,5}
\draw[ thick] (0,0) circle (\r);
\foreach \r in {2, 4,...,10}
\draw (45:0.5*\r+0.05) node[inner sep=1pt,above right,rectangle,fill=white] {$\r{0}\%$}
(-135:0.5*\r+0.05) node[inner sep=1pt,below left,rectangle,fill=white] {$\r{0}\%$};
\foreach \a in {0, 90,...,360}
\draw[thick,my ticks] (0, 0) -- (\a:5);
\node[rotate=90](R0) at (5.5,0){RO};
\node[rotate=90] (AE) at (-5.5,0){AE};
\node(CE) at (0,5.5){CE};
\node(AC) at (0,-5.5){AC};
\end{tikzpicture}
\end{document}
答案2
这仍然可以简化,但似乎有效。大多数代码用于绘制抽动,我认为可以在第二次尝试中简化。
\documentclass[tikz,12pt]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \r [count=\rcount, evaluate=\r as\p using int(2*\r)] in {1,...,5} {
\draw [thick] circle (\r) (45:\r+.5) node{$\p{0}\%$} (225:\r+.5) node{$\p{0}\%$};
\foreach \t [count=\tcount, evaluate=\t as\b using int(16-\tcount+4*\rcount)] in {.2,.5,.8}
\draw (\r-\t,0) -- (\r-\t,-2mm) node[below,font=\tiny]{\b};
\foreach \t [count=\tcount, evaluate=\t as\b using int(18-\tcount+4*\rcount)] in {.2,.5,.8}
\draw (\t-\r,0) -- (\t-\r,2mm) node[above,font=\tiny]{\b};
\foreach \t [count=\tcount, evaluate=\t as\b using int(15-\tcount+4*\rcount)] in {.2,.5,.8}
\draw (0,\r-\t) -- (2mm,\r-\t) node[right,font=\tiny]{\b};
\foreach \t [count=\tcount, evaluate=\t as\b using int(20-\tcount+4*\rcount)] in {.2,.5,.8}
\draw (0,\t-\r) -- (-2mm,\t-\r) node[left,font=\tiny]{\b};
}
\draw[thick] (180:5)node[left]{AE} -- (0:5)node[right]{RO} (90:5)node[above]{CE} -- (-90:5)node[below]{AC};
\end{tikzpicture}
\end{document}