是否有“--”、“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
)等。这也发生在 中,此外,out
bend ...
edge
edge
另一条路,您可以更改颜色、虚线图案等。
\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 node
s,或 2 coordinate
s,或 1node
和 1 coordinate
。请注意,这coordinate
是一个特殊的(无内容)node
。我认为edge
可以忽略。我edge
在使用 TikZ 绘图时从未使用过,而且我感觉绝对舒适有效:我使用的键越少,编码越简单,输出图形相同。换句话说,我使用普通的 TikZ。
仅当
to
不带任何其他选项使用时,它才会缩写为--
,含义直通连接. 所有其他情况(to
带有某些选项,如、 、in
、out
等,请参阅bend left
controls
distance
第 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}