使用智能图时放置附加节点

使用智能图时放置附加节点

我正在尝试在使用 生成的图表的两侧添加其他节点smartdiagram。理想情况下,我希望将节点放置在圆形图中和b1之间边缘的左侧,以及和之间边缘的右侧。使用绝对坐标增加附加节点之间的距离/尝试放置它们仍然会导致圆形图位于两个节点的右侧。可以这样做吗?abb2ad


我的示例代码

\documentclass[border=10pt]{standalone}
\usepackage{tikz, smartdiagram}
\usetikzlibrary{shapes.multipart}    
\tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}

\begin{document}

\begin{tikzpicture}[node distance = 4cm, auto]  
  \node [state, rectangle split parts=2] (b1) at (0,5) {text \nodepart{two} one};
  \node [state, rectangle split parts=2] (b2) at (5,5) {text \nodepart{two} two};
\end{tikzpicture}    

\smartdiagram[circular diagram] {a, b, c, d}  

\end{document}

我想也许TikZ:从 smartdiagram 包向圆形图添加节点可以帮忙,但我不知道如何添加节点,即

\smartdiagramadd[circular diagram]{a, b, c, d}{
              left of module1/\node [state, rectangle split parts=2]}

答案1

smartdiagram为节点命名。因此,您可以使用叠加层连接它们。在我看来,唯一不太吸引人的方面是,在overlay模式下绘制的内容不会增加边界框,您需要手动执行此操作。这解释\hspace*{2cm}

\documentclass[border=10pt]{standalone}
\usepackage{tikz, smartdiagram}
\usetikzlibrary{shapes.multipart}    
\tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
\tikzset{every picture/.append style={remember picture}}
\begin{document}

\hspace*{2cm}\smartdiagram[circular diagram] {a, b, c, d}\hspace*{2cm}%
\begin{tikzpicture}[overlay]  
  \path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text \nodepart{two} one};
  \path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text \nodepart{two} two};
\end{tikzpicture}    


\end{document}

在此处输入图片描述

相关内容