在两个节点之间画一条弧,并在 TikZ 中标记

在两个节点之间画一条弧,并在 TikZ 中标记

我已经画了两个椭圆l1l2l2位于左下方l1

\begin{tikzpicture}
  \node (l1) [ellipse, draw=black, fill=white!20, text=black, scale=0.8, text centered]{
    $l_1$};
  \node (l2) [ellipse, draw=black, fill=white!20, text=black, scale=0.8, text centered, below left=1cm of l1]{
    $l_2$};
\end{tikzpicture}

我想用 画一条从 的南边到 的北边的圆弧。l1画圆弧而不是直线的目的是为了使它更漂亮,所以只要有一点弧度就可以了,不需要非常精确。l2->

有人知道怎么做吗?

我还想在弧的中间添加标签。标签实际上是一个单词,理想情况下水平显示。

答案1

您可以使用 绘制带箭头的圆弧\draw [bend right,->] (l1) to (l2);。可以使用 指定曲率bend right=<angle>

要添加标签,您可以在路径中间插入node [auto] {<text>}后添加节点toauto关键字可确保文本不会与线重叠。如果您希望文本位于线的另一侧,则可以swap在 后添加关键字。可以使用、、(或 的等效表达式)或使用 指定分数来auto控制路径上的距离。at startvery near startnear startendat=<pos>

请注意,您不需要text centered明确设置,因为这是默认行为。

\documentclass[a4paper]{article}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric,positioning}

\begin{document}

\begin{tikzpicture}
  \node (l1) [ellipse, draw=black, fill=white!20, text=black, scale=0.8]{
    $l_1$};
  \node (l2) [ellipse, draw=black, fill=white!20, text=black, scale=0.8, below left=1cm of l1]{
    $l_2$};
\draw[bend left,->]  (l1) to node [auto] {Link} (l2);
\end{tikzpicture}

\end{document}

相关内容