![在 TikZ 中从一个节点到另一个节点绘制一条特殊圆弧](https://linux22.com/image/240152/%E5%9C%A8%20TikZ%20%E4%B8%AD%E4%BB%8E%E4%B8%80%E4%B8%AA%E8%8A%82%E7%82%B9%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E8%8A%82%E7%82%B9%E7%BB%98%E5%88%B6%E4%B8%80%E6%9D%A1%E7%89%B9%E6%AE%8A%E5%9C%86%E5%BC%A7.png)
虽然我刚学会画圆弧,但是画图中的圆弧还是有点困难。特别是从第二个圆到第一个圆的圆弧。如果我这样做:(上面的圆是\draw[bend left,->] (l2.south) to node [auto] (l1.north)
哪里,下面的圆是哪里),线就会穿过圆,使图片不美观。l1
l2
那么有人知道如何从l2
到画弧吗l1
?另外,我希望这条弧从 的南边开始l2
,指向 的西北部l1
(而不是 的北边l1
)
有人能帮忙吗?非常感谢!
答案1
您需要为此定义一个支撑点。您可以使用语法+(<x>,<y>)
,它指定相对于起点的点。为了平滑曲线,您必须确保in
进入支撑点的路径段的值和out
离开支撑点的段的值加起来为 0。要调整曲线的路径,您可以使用looseness
和in looseness
,out looseness
它们指定路径的“弯曲程度”。
通过为路径的第一段和最后一段指定一个out
和角度,您可以确定路径离开或进入节点的位置。或者,您可以指定让路径在节点的左上角开始或结束,或者使用指定路径在形状轮廓上的哪个角度开始或结束,指向正东、正北等。in
(<node name>.north west)
(<node name>.<angle>)
0
90
\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);