连接路径语句中的节点

连接路径语句中的节点

我正在尝试绘制我想要连接的节点序列。

以下路径规范绘制了一个三角形,但连接的是坐标,而不是这些坐标处的节点。

\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);

有没有直接的方法可以做到这一点,而无需手动命名节点和绘制线条?

编辑:左边是第一个片段,右边是第二个片段,我想要正确的片段: 路径示例.png

答案1

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}[every node/.style={circle, draw}]
\draw node (1) {1} --++(-60:2cm) node (2) {2} --++(180:2cm) node (3){3} (1)--(2)--(3)--(1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案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}

相关内容