我希望我的图表中有一个如下所示的形状:
我的主要问题是尽可能紧密地排列节点。我目前的方法是
\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}
结果是: