我希望绘制箭头,不一定位于线的末端,也不一定位于中间。我还想在箭头的正上方(或下方,或右侧,...)写一个节点。
我看到了这个问题,但它并没有回答我所有的问题——首先,它将箭头放在了线的中间。我知道我可以通过玩来修改它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}
请注意,您可以多次应用。如果您想更改文本的方向,您可以进一步定义第三个参数作为额外的节点选项,例如选择above
、below
、等。right
left