在 tikz 中将节点紧密相邻

在 tikz 中将节点紧密相邻

我希望我的图表中有一个如下所示的形状:

所需形状

我的主要问题是尽可能紧密地排列节点。我目前的方法是

\documentclass{standalone}

\usepackage{tikz}
\usepackage{amssymb}

\begin{document}
\tikzstyle{state}=[circle, draw, minimum size=5mm,inner sep=0pt]
\tikz{
\node[state] (a) {};
\node[left of=a] {$\vartriangleright$};
}
\end{document}

结果是

在此处输入图片描述

这当然不是更好的选择。我只需要知道如何将三角形节点尽可能紧密地放置在圆形节点旁边。

答案1

也许你想尝试一下:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \draw [line join=round] (-1,0) -- ++(150:1) -- ++(270:1) -- cycle;
    \draw (0,0) circle (1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

我假设你使用该\vartriangleright命令只是为了得到一个三角形,而不是因为你需要这种特定类型的三角形。因此我自己绘制了三角形,因为这样对齐起来更容易。

由于圆的外边界在 x 轴上的位置就是圆心 x 坐标减去圆的半径,因此我将此点 ( (-1,0)) 作为三角形尖端的参考点。从此点开始,三角形用极向量 ( (<angle>:>length>)) 绘制 - 对于等边三角形,这是最简单的方法,因为您不必在笛卡尔坐标中计算角,而只需给出下一个角的长度和角度。

答案2

节点定位支持按键node distance,通过手动调整节点距离可以移动三角形使得两者互相接触。

如果您使用 TikZ 三角形而不是数学字符,还有其他方法来调整距离,但这在这里很好用:

\documentclass{standalone}

\usepackage{tikz}
\usepackage{amssymb}

\begin{document}
\tikzstyle{state}=[circle, draw, minimum size=5mm,inner sep=0pt]
\tikz{
\node[state] (a) {};
\node[left of=a,node distance=10pt] {$\vartriangleright$};
}
\end{document}

结果是:

在此处输入图片描述

相关内容