在 TikZ 中从一个节点到另一个节点绘制一条特殊圆弧

在 TikZ 中从一个节点到另一个节点绘制一条特殊圆弧

虽然我刚学会画圆弧,但是画图中的圆弧还是有点困难。特别是从第二个圆到第一个圆的圆弧。如果我这样做:(上面的圆是\draw[bend left,->] (l2.south) to node [auto] (l1.north)哪里,下面的圆是哪里),线就会穿过圆,使图片不美观。l1l2

那么有人知道如何从l2到画弧吗l1?另外,我希望这条弧从 的南边开始l2,指向 的西北部l1(而不是 的北边l1

有人能帮忙吗?非常感谢!

在此处输入图片描述

答案1

您需要为此定义一个支撑点。您可以使用语法+(<x>,<y>),它指定相对于起点的点。为了平滑曲线,您必须确保in进入支撑点的路径段的值和out离开支撑点的段的值加起来为 0。要调整曲线的路径,您可以使用loosenessin loosenessout looseness它们指定路径的“弯曲程度”。

通过为路径的第一段和最后一段指定一个out和角度,您可以确定路径离开或进入节点的位置。或者,您可以指定让路径在节点的左上角开始或结束,或者使用指定路径在形状轮廓上的哪个角度开始或结束,指向正东、正北等。in(<node name>.north west)(<node name>.<angle>)090

\documentclass[a4paper]{article}

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

\begin{document}

\begin{tikzpicture}[every node/.style={draw,ellipse}]
  \node (A) {A};
  \node [below left=2cm and 0.5cm of A] (B) {B};
\draw[out=-90,in=90,->]  (A) to  (B);
\draw [->] (B)  to [out=-90,in=-90,in looseness=2.5] +(-1cm,1cm) to [out=90,in=135,out looseness=1.5](A);
\end{tikzpicture}

\end{document}

如果你没有设定B从南边离开节点的路径,而是让它从西南边离开,那么你可以直接写

\draw [->] (B)  to [out=-135,in=135,in looseness=1.5] (A);

相关内容