TikZ:\node 和 \coordinate 之间的区别?

TikZ:\node 和 \coordinate 之间的区别?

\node中和\coordinate有什么区别TikZ? 交换它们对我(说实话:仍然很简单)的图片没有视觉效果。

什么时候使用什么?

答案1

好吧,也许看看 pgfmanual 很有趣:

  1. \coordinate是以下的快捷方式\path ... coordinate[⟨options⟩](⟨name⟩)at(⟨coordinate⟩) ...;

  2. 并且它与可能缺失的node[shape=coordinate][]⟨options ⟩](⟨name ⟩)at(⟨coordinate ⟩){},地方相同。at part

    由于节点通常是路径上的唯一路径操作,因此有两个特殊命令用于创建仅包含节点的路径:这\node 里面{tikzpicture}是 的缩写\path node。 这\coordinate里面{tikzpicture}是 的缩写 \path coordinate

  3. pgf 和 TikZ 默认定义三种形状:

    • 长方形,
    • 圆圈,以及
    • 协调。

    TikZ 以特殊方式处理坐标形状。当形状为坐标的节点 x 用作坐标 (x) 时,其效果与您说 (x.center) 相同。在这种情况下,任何特殊的“线缩短规则”都不适用。这可能很有用...

  4. 最后

    形状的具体行为各不相同,为更特殊目的定义的形状(例如晶体管形状)将具有更多自定义行为。但是,有些选项适用于大多数形状。

这就是为什么一些默认值inner sep不同。

答案2

\node需要标题:

\node (name) at (coordinate) {caption};

\coordinate不使用标题:

\coordinate (name) at (coordinate);

\node也可以有形状和尺寸,\coordinate只是一个点

答案3

node引入了inner sep,因此不会产生真正意义上的几何点。coordinate或者\node [coordinate] 另一方面,没有inner sep

\documentclass{article}
\usepackage{tikz}
\begin{document}
\verb|\node|  introduces an \verb|inner sep|:

\begin{tikzpicture}
    \coordinate (cone) at (0,0);
    \node (none) at (4,0) {};
      \draw[->] (cone) -- (none);
    \draw[draw,red,->] (none) -- (0:5);
\end{tikzpicture}

\verb|\node[coordinate]| or \verb|\coordinate|  does not introduce an \verb|inner sep|:

\begin{tikzpicture}
    \coordinate (cone) at (0,0);
    \node[coordinate] (none) at (4,0) {};     %% or \coordinate (none) at (4,0);
      \draw[->] (cone) -- (none);
    \draw[draw,red,->] (none) -- (0:5);
\end{tikzpicture}

If you use \verb|\node|, you may be forced to use \verb|none.center| to get rid of the gap noticed between the two lines:

\begin{tikzpicture}
    \coordinate (cone) at (0,0);
    \node (none) at (4,0) {};
      \draw[->] (cone) -- (none.center);
    \draw[draw,red,->] (none.center) -- (0:5);
\end{tikzpicture}

Hence, when you need a geometric point, use \verb|\node[coordinate]| or \verb|\coordinate|.
\end{document}

在此处输入图片描述

底线:当你需要一个点时使用coordinate

答案4

最近在学TikZ,直到做了下面的练习才真正理解了上面的答案。

  1. \coordinate

    \usetikzlibrary{intersections,positioning,backgrounds,fit,calc}
    \usetikzlibrary{through}
    \begin{tikzpicture}[scale=3]
        \def\A{\textcolor{input}{$A$}}
        \def\B{\textcolor{input}{$B$}}
        \def\C{$C$}
        \def\D{$D$}
        \def\E{$E$}
        \colorlet{input}{blue!60!black}
        \colorlet{output}{red!60!black}
        \coordinate [label=left:\A] (A) at (0,0) ;
        \coordinate [label=right:\B] (B) at (0.8,0.2);
        \draw [color=input] (A) -- (B);
        \node [draw, name path=D,label=left:\D] (D) at (A) [circle through=(B)] {};
        \node [draw, name path=E,label=right:\E] (E) at (B) [circle through=(A)] {};
    \end{tikzpicture}
    

    我懂了,

    在此处输入图片描述

  2. \node

    \usetikzlibrary{intersections,positioning,backgrounds,fit,calc}
    \usetikzlibrary{through}
    \begin{tikzpicture}[scale=3]
        \def\A{\textcolor{input}{$A$}}
        \def\B{\textcolor{input}{$B$}}
        \def\C{$C$}
        \def\D{$D$}
        \def\E{$E$}
        \colorlet{input}{blue!60!black}
        \colorlet{output}{red!60!black}
        \node [label=left:\A] (A) at (0,0) {};
        \node [label=right:\B] (B) at (0.8,0.2){};
        \draw [color=input] (A) -- (B);
        \node [draw, name path=D,label=left:\D] (D) at (A) [circle through=(B)] {};
        \node [draw, name path=E,label=right:\E] (E) at (B) [circle through=(A)] {};
    \end{tikzpicture}
    

    我懂了,

    在此处输入图片描述

区别就体现在直线AB与圆的交点部分,可以帮助你理解“\node也可以有形状和尺寸,\coordinate只是一个点”。

相关内容