我想制作一个带有两个节点的 tikz 绘图,就像我那张糟糕的绘图中所示的那样。(底部节点应该是圆形的,带有一些可以更薄的发散投影。顶部节点应该遵循底部节点的曲线 — 也许是一种粗弧?)
我还想在两个节点中放置一些文本(在顶部节点中,如果文本能够跟随曲线就好了。)但是,文本不是必需的。
这在 Tikz 中可能吗?
答案1
它实际上不是一个节点,但是运行得足够好:
代码
\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{decorations.text}
\newcommand{\StrangeNode}[4][scale=1]% options, upper text, lower text, size
{ \begin{scope}[#1]
\clip (0,0) circle (2);
\draw (250:1) -- ++(270:3) (290:1) -- ++(270:3);
\draw (210:1) -- ++(230:3) (250:1) -- ++(230:3);
\draw (290:1) -- ++(310:3) (330:1) -- ++(310:3);
\draw (210:1) arc (210:-30:1);
\draw (30:1.7) arc (30:-150:0.2);
\draw (40:1.7) arc (40:30:1.7);
\draw[postaction={decoration={text along path,
text = {|#4|#2}, text align=center,raise=0.3ex},decorate}] (150:1.3) arc (150:30:1.3);
\draw (150:1.3) arc (330:150:0.2);
\draw (150:1.7) arc (150:140:1.7);
\draw (140:1.7) -- ++(130:3) (120:1.7) -- ++(130:3);
\draw (120:1.7) arc (120:100:1.7);
\draw (100:1.7) -- ++(90:3) (80:1.7) -- ++(90:3);
\draw (80:1.7) arc (80:60:1.7);
\draw (60:1.7) -- ++(50:3) (40:1.7) -- ++(50:3);
\begin{scope}
\clip (0,0) circle (1);
\node[align=center,font=#4,transform shape] at (0,0) {#3};
\end{scope}
\end{scope}
}
\begin{document}
\begin{tikzpicture}
\StrangeNode{A strange game}{The\\ winning\\ move is not\\ to play}{\small}
\StrangeNode[shift={(5,0)},scale=1.5,rotate=45]{|\LARGE|ABC}{DDDD\\ EEEE}{\normalsize}
\end{tikzpicture}
\end{document}