TikZ 中的箭头和节点

TikZ 中的箭头和节点

我希望绘制箭头,不一定位于线的末端,也不一定位于中间。我还想在箭头的正上方(或下方,或右侧,...)写一个节点。

我看到了这个问题,但它并没有回答我所有的问题——首先,它将箭头放在了线的中间。我知道我可以通过玩来修改它mark=at position 0.5,但很可能我想在一条线上有一个特定的位置,而在另一条线上有一个不同的位置,即用于\draw[mystyle 0.5]中间,\draw[mystyle 0.75]用于将其放在四分之三的位置等等。此外,它不能解决节点问题。

有人可以帮我一下吗?

答案1

根据我们的讨论,我认为以下样式定义可以解决问题。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}

\begin{tikzpicture}
[
nodewitharrow/.style 2 args={                
            decoration={             
                        markings,   
                        mark=at position {#1} with { 
                                    \arrow{>},
                                    \node[transform shape,above] {#2};
                        }
            },
            postaction={decorate}
}
]

\draw[nodewitharrow={0.6}{Node text},nodewitharrow={0.2}{Second}] (0,0) -- (4,3) ;
\draw[nodewitharrow={0.75}{\tiny Tiny}] (0,0) (4,0) arc (0:60:2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,您可以多次应用。如果您想更改文本的方向,您可以进一步定义第三个参数作为额外的节点选项,例如选择abovebelow、等。rightleft

相关内容