用缩短 > 固定箭头角度

用缩短 > 固定箭头角度

我有以下最小示例,其中我结合使用in和:outshorten >

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style = {draw, circle, minimum size = 1.5em}]
\node (a) at (0, 0) {$a$};
\node (b) at (0, 0.8) {$b$};
\draw[->, shorten > = 3pt] (a) to [out = 45, in = -45] (b);
\end{tikzpicture}
\end{document}

箭头角度错误

如您所见,箭头不再与路径末端对齐。有没有办法改变箭头的角度,或者理想情况下改变路径的曲率,使其在节点前 3pt 处以 -45 度角进入?我不介意手动调整一些角度或控制点。

这个问题decorations是我能找到的最接近的问题,但它与我没有使用的库有关。

答案1

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, % <--- added
                bending      % <--- added
                }

\begin{document}
\begin{tikzpicture}[every node/.style = {draw, circle, minimum size = 1.5em}]
\node (a) at (0, 0) {$a$};
\node (b) at (0, 0.8) {$b$};
\draw[-{Straight Barb[bend]}, % <--- changed 
      shorten > = 3pt] (a) to [out = 45, in = -45] (b);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

尽管 Zarko 的答案已经很好了,但我想提请您注意另一种方法,这种方法可能是也可能不是您的选择。使用密钥looseness(在 70.3 节中描述)pgf手动的),可以作用于控制点与起始坐标和目标坐标之间的距离。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}[every node/.style = {draw, circle, minimum size = 1.5em}]
      \node (a) at (0, 0) {$a$};
      \node (b) at (0, 0.8) {$b$};
      \draw[->, shorten > = 3pt] (a) to [out = 45, in = -45, looseness=1.6] (b);
    \end{tikzpicture}
\end{document}

也许你可以将它与bend箭头结合使用。

在此处输入图片描述

相关内容