绘制节点箭头

绘制节点箭头

我不确定节点函数如何在树中使用,比如 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)坐标。

相关内容