我不确定节点函数如何在树中使用,比如 Gonzalo Medina 在这篇文章中绘制的树:树木和箭
我希望能够创建从不同节点到不同节点的箭头。我不知道该参考什么+(south west:5)
,+(south:5)
也不清楚是否有任何地方对此进行了足够深入的解释(印象派评论除外)。
答案1
示例中的箭头是三次贝塞尔曲线,因此它有两个控制点来“引导”曲线的方向。第一个控制点的位置由 指定+(south west:5)
,第二个控制点的位置由 指定+(south:5)
。以下代码改编自这个答案到当我“弯曲”边缘时,Tikz 使用哪种类型的曲线?,显示您所引用的示例的这些控制点。
\documentclass[12pt,a4paper]{article}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usepackage{ulem}
\def\hcancel#1{}% provissional definition; delete this line in your actual code
\usetikzlibrary{decorations.pathreplacing,shapes.misc}
\tikzset{
show control points/.style={
decoration={show path construction, curveto code={
\draw [blue, dashed]
(\tikzinputsegmentfirst) -- (\tikzinputsegmentsupporta)
node [at end, cross out, draw, solid, red, inner sep=2pt]{};
\draw [blue, dashed]
(\tikzinputsegmentsupportb) -- (\tikzinputsegmentlast)
node [at start, cross out, draw, solid, red, inner sep=2pt]{};
}
},
postaction=decorate
},
}
\begin{document}
\begin{tikzpicture}
\Tree
[.{$<$t$_{1}$,\hspace{0.1cm} \\$\lbrack$ \hspace{0.3cm} $\rbrack$, $\lbrack$ \hspace{0.3cm} $\rbrack$ $>$}
[.{$<$(e$_{3}$ $\rightarrow$ t$_{1}$) $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$} \node(wh){something} ;
]
[.{$<$(e$_{3}$ $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ \hcancel{e$_{3}$}
\thinspace $\rbrack$ $>$ }
[. \node (ue) {e$_{3}$}; ]
[.\node[draw]{{$<$t$_{1}$, \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$ }};
[.\node[draw]{e$_{2}$ }; ]
[.{$<$(e$_{2}$ $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$}
[.{$<$(e$_{3}$ $\rightarrow$ e$_{2}$ $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$} {$<$(e$_{3}$ $\rightarrow$ e$_{2}$ $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$}
]
[.\node[draw]{e$_{3}$ };
[. \node (le) {e$_{3}$}; ]
]
]
]
]
]
\draw[semithick,->,show control points] (le)..controls +(south west:5) and +(south:5) .. (ue);
\end{tikzpicture}
\end{document}
曲线tikz
关于曲线的更多解释,tikz
可以在pgf
手动的,从第 2.4 节第 31-32 页开始。与曲线相关的选项和命令的正式定义在第 70.3 节第 753-756 页。手册和本网站其他地方也有许多曲线示例。
坐标位于tikz
您可以使用任何一种tikz
坐标系统来指定控制点。这些系统在手册第 120 页的第 11.1 节中进行了描述。在您引用的示例中,表示+
控制点是相对于另一个点指定的。第一个控制点被指定为south west
曲线起点(左下方)5 处。第二个控制点被指定为曲线终点south
(下方)5 处。该数字相对于坐标-坐标系,默认以厘米为单位。
如果您更喜欢使用度数而不是罗盘点,这些控制点可以等效地指定为+(235:5)
和。它们也可以指定为和,这样您就可以同时指定+(270:5)
+(-5,-5)
+(0,-5)
X-和是-控制点的坐标,以便更精细地控制其位置。我个人更喜欢使用这些(x,y)
坐标。