我正在尝试绘制我想要连接的节点序列。
以下路径规范绘制了一个三角形,但连接的是坐标,而不是这些坐标处的节点。
\draw (0,0)
+(90:1cm) node {1} to
+(210:1cm) node {2} to
+(330:1cm) node {3} to
+(90:1cm);
我想要的应该是类似下面的代码,它连接节点而不是路径中所述的中心位置。
\draw (0,0)
+(90:1cm) node[name=a] {}
+(210:1cm) node[name=b] {}
+(330:1cm) node[name=c] {};
\foreach \from/\to in {a/b, b/c, c/a}
\draw (\from) -- (\to);
有没有直接的方法可以做到这一点,而无需手动命名节点和绘制线条?
答案1
答案2
因为我习惯编写自动机,所以我发现用这种方式绘制三角形更容易:
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
scale = 1,transform shape]
\node[state] (1) {$1$};
\node[state] (2) [below left of=1] {$2$};
\node[state] (3) [below right of=1] {$3$};
\path [-] (1) edge (2)
[-] (2) edge (3)
[-] (1) edge (3);
\end{tikzpicture}
\end{document}
它可能无法按照您要求的方式解决问题,但正如我们在评论中讨论的那样,这是我解决问题的方法。
无论如何,您可以从中得到启发,并以其他方式重写它!
答案3
我想当您更熟悉 TikZ 时,您会发现命名节点是一项方便的功能。
以下所有节点都没有名称。
\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
\def\r{1.5}
\draw (90:\r)--(210:\r)--(-30:\r)--cycle;
\path[nodes={draw,circle,fill=white}]
(90:\r) node{1}
(210:\r) node{2}
(-30:\r) node{3};
\end{tikzpicture}
\end{document}