\node
中和\coordinate
有什么区别TikZ
? 交换它们对我(说实话:仍然很简单)的图片没有视觉效果。
什么时候使用什么?
答案1
好吧,也许看看 pgfmanual 很有趣:
\coordinate
是以下的快捷方式\path ... coordinate[⟨options⟩](⟨name⟩)at(⟨coordinate⟩) ...;
并且它与可能缺失的
node[shape=coordinate][]⟨options ⟩](⟨name ⟩)at(⟨coordinate ⟩){},
地方相同。at part
由于节点通常是路径上的唯一路径操作,因此有两个特殊命令用于创建仅包含节点的路径:这
\node
里面{tikzpicture}
是 的缩写\path node
。 这\coordinate
里面{tikzpicture}
是 的缩写\path coordinate
。pgf 和 TikZ 默认定义三种形状:
- 长方形,
- 圆圈,以及
- 协调。
TikZ 以特殊方式处理坐标形状。当形状为坐标的节点 x 用作坐标 (x) 时,其效果与您说 (x.center) 相同。在这种情况下,任何特殊的“线缩短规则”都不适用。这可能很有用...
最后
形状的具体行为各不相同,为更特殊目的定义的形状(例如晶体管形状)将具有更多自定义行为。但是,有些选项适用于大多数形状。
这就是为什么一些默认值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,直到做了下面的练习才真正理解了上面的答案。
和
\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}
我懂了,
和
\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
只是一个点”。