将圆节点分成三部分

将圆节点分成三部分

我很难将节点圈分成三部分。

我希望将圆圈水平分割,然后将底部垂直分成两半,就像这样:

分割圆

我仍然希望能够在每个部分内放置文本。

提前致谢

编辑 我最终可以得到如上图所示的圆圈,但我无法按照我想要的方式在每个部分放置文字。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}

\begin{tikzpicture}[scale =3 ]
\node [circle split,draw,text width=15em] (z){$a$ \hfill $b$}; \draw 
(z.center) -- (z.south);
\end{tikzpicture}

\end{document}

答案1

要写入拆分节点的不同部分,请使用命令\nodeparts- 请参阅 pgf/tikz 手册第 17.3 节。在本例中,您人为地创建了三个节点部分,因此circle split您可以使用以下方式写入节点的顶部和底部部分

\node[circle split, draw]{top text\nodepart{lower} lower text};

我认为,要写入底部分割的左右部分,您需要进行修改。以下是执行此操作的一种方法:

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}

\begin{tikzpicture}[scale =3 ]
  \node [circle split,draw] (z){1\nodepart{lower} 2\quad 3};
  \draw (z.center) -- (z.south);
\end{tikzpicture}

\end{document}

得出的结果为:

在此处输入图片描述

应该能够“正确地”定义这种类型的拆分节点部分,在这种情况下,您可以在每个组件中写入而不需要这种技巧。

另一种方法是定义一个pic(参见 tikz 手册第 18.2 节),创建节点形状,然后将文本放入每个部分。图片的语法是

pic{mysplit={radius, top text, left text, right text}

您可以使用\pic命令或放置图片\draw(x,y)pic{...}。这样做,MWE

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}

\tikzset{
  pics/mysplit/.style args = {#1,#2,#3,#4}{% radius, top tex, left text, right text
    code = {
        \draw (0,0) circle (#1); % draw the circles and the lines
        \draw(-#1,0)--(#1,0);
        \draw(0,0)--(0,-#1);
        \pgfmathsetmacro\half{#1/3}% a third looked better than a half...
        \node at (0,\half){#2};
        \node at (-\half,-\half){#3};
        \node at (\half,-\half){#4};
    }
  }
}

\begin{tikzpicture}
    \draw (0,0) pic{mysplit={1,1,2,3}};
    \draw (4,0) pic{mysplit={1.5,One,Two,Three}};
\end{tikzpicture}
\end{document}

生成:

在此处输入图片描述

相关内容