![如何绘制重叠的“彩虹”环](https://linux22.com/image/437545/%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%E9%87%8D%E5%8F%A0%E7%9A%84%E2%80%9C%E5%BD%A9%E8%99%B9%E2%80%9D%E7%8E%AF.png)
我正在尝试创建一个关于 Apache Cassandra 的演示文稿,并绘制一个所谓的环,显示哪些节点存储了哪些范围的分区键。
我想将这些范围表达为颜色范围。
之后,我想通过绘制重叠且颜色不同的彩虹来展示复制因子如何使节点存储更多范围。
但到目前为止,我只能够画出两个没有重叠的环。
我还想将其自动化为超过三个的复制因子和任意数量的节点(我一直在努力\foreach
,但节点标签被 x 和 y 轴移动并且与圆圈不同步)。
就 tikz 和 latex 而言,我是个新手,也许我应该放弃这个想法,因为我在 Google 上搜索过的所有自定义着色解决方案看起来都非常复杂……
我将非常感激您的帮助。解决方案最好尽可能简单。
\tikz \shade[shading=color wheel] [even odd rule]
(0,2) circle [radius=2.4]
(0,2) circle [radius=2.2]
(0,2) circle [radius=2.0]
(0,2) circle [radius=1.8];
答案1
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{shadings}
\begin{document}
\begin{tikzpicture}
\shade[shading=color wheel, even odd rule, shading angle=20] (0,0) circle[radius=2.4] (0,0) circle[radius=2.2];
\shade[shading=color wheel, even odd rule] (0,0) circle[radius=2.0] (0,0) circle[radius=1.8];
\node at (20:2.8) {$N1$};
\node at (220:2.8) {$N2$};
\node at (140:2.8) {$N3$};
\draw[thick] (80:1.8) -- (80:2.4);
\draw[thick] (180:1.8) -- (180:2.4);
\draw[thick] (290:1.8) -- (290:2.4);
\draw[thick] (40:2.3) -- (40:3) node[above, align=left, font=\tiny] {Is rotated to\\overlap ranges};
\end{tikzpicture}
\end{document}
答案2
不确定这是不是你想要的?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadings}
\begin{document}
\tikz{
\shade[shading=color wheel,even odd rule]
circle[radius=2.4]circle[radius=2.2];
\shade[shading=color wheel,even odd rule,transform canvas={rotate=72}]
circle[radius=2]circle[radius=1.8];
\foreach\NODE in{1,2,3,4,5}{
\draw
(\NODE*72:1.6)--(\NODE*72:2.6)
(\NODE*72+36:3)node{node \#\NODE}
;
}
}
\end{document}