PGF/TiKZ:什么时候应该选择“--”、“to”或“edge”来连接节点?

PGF/TiKZ:什么时候应该选择“--”、“to”或“edge”来连接节点?

是否有“--”、“to”和“edge”之间的区别的总结,以及选择其中一个路径命令来连接节点的当前最佳实践是什么?

答案1

我们来看这个例子。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[]
    \draw (0,0) -- ++(2,0) -- ++(0,0.5);
    \draw (0,-1) to ++(2,0) -- ++(0,0.5);
    \draw (0,-2) edge ++(2,0) -- ++(0,0.5);
\end{tikzpicture}
\end{document}

结果是

三条线

没有选项,to实际上与 相同--edge但不同之处在于:边缘操作添加了一条新路径完成当前任务后(看看垂直“茎”从哪里开始?)

不同之处在于,使用 时to,您可以选择改变路径(例如,,in)等。这也发生在 中,此外,outbend ...edgeedge另一条路,您可以更改颜色、虚线图案等。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[]
    \draw (0,0) -- ++(2,0) -- ++(0,0.5);
    \draw (0,-1) to[bend left] ++(2,0) -- ++(0,0.5);
    \draw (0,-2) edge[red, bend left] ++(2,0) -- ++(0,0.5);
\end{tikzpicture}
\end{document}

第二个例子

\draw (0,-1) to[red, bend left] ++(2,0) -- ++(0,0.5);请注意不是创建一条红线...因为颜色是全球的路径的属性。

另一个重要的区别是,如果起点是一个节点,则edge操作就像使用节点名称作为起始坐标一样,因此它使用边框锚点:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={circle, draw}]
    \draw (0,0) node{} to[bend left] ++(2,0);
    \node (A) at (0,-1) {};
    \draw (A) to[bend left] ++(2,0);
    \draw (0,-2)  node{} edge[red, bend left] ++(2,0);
\end{tikzpicture}
\end{document}

从节点开始

答案2

这只是我的个人经历。来自手册--to和键edge用于连接2 nodes,或 2 coordinates,或 1node和 1 coordinate。请注意,这coordinate是一个特殊的(无内容)node。我认为edge可以忽略。我edge在使用 TikZ 绘图时从未使用过,而且我感觉绝对舒适有效:我使用的键越少,编码越简单,输出图形相同。换句话说,我使用普通的 TikZ。

仅当to不带任何其他选项使用时,它才会缩写为--,含义直通连接. 所有其他情况(to带有某些选项,如、 、inout等,请参阅bend leftcontrolsdistance第 74.3 节 曲线在 pgfmanual 中),只需使用to

例如,

  • \draw (A)--(B);是相同的\draw (A) to (B);
  • \draw (A) to [bend left] (B);有效;但同时\draw (A) -- [bend left] (B);也会出现错误。

更多示例:

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path 
(0,0) coordinate (A)    
(3,2) coordinate (B)
;

% "--" is "to" when it is used WITHOUT any other options
\draw (A) -- node [sloped,above,pos=.3,red] {x} (B);
\draw (A) to node [sloped,above,pos=.3,red] {x} (B);

% When "to" is used WITH some options, just "to"
\draw (A) to [out=90,in=180] node [sloped,above,pos=.7,blue] {x} (B);
\end{tikzpicture}
\begin{tikzpicture}
\path 
(0,0) node[draw] (A) {A}    
(3,2) node[draw,circle] (B) {B}
;
    
% "--" is "to" when it is used WITHOUT any other options
\draw (A) -- node [sloped,above,pos=.3,red] {x} (B);
\draw (A) to node [sloped,above,pos=.3,red] {x} (B);
    
% When "to" is used WITH some options, just "to"
\draw (A) to [out=90,in=180] node [sloped,above,pos=.7,blue] {x} (B);
\end{tikzpicture}
\begin{tikzpicture}
\path 
(0,0) node[draw] (A) {A}    
(3,2) coordinate (B)
;
    
% "--" is "to" when it is used WITHOUT any other options
\draw (A) -- node [sloped,above,pos=.3,red] {x} (B);
\draw (A) to node [sloped,above,pos=.3,red] {x} (B);
    
% When "to" is used WITH some options, just "to"
\draw (A) to [out=90,in=180] node [sloped,above,pos=.7,blue] {x} (B);
\end{tikzpicture}

\end{document}

相关内容