我有类似的东西:
\SetVertexNormal[Shape = circle,
LineWidth = 2pt]
\SetUpEdge[lw = 1.5pt,
color = blue]
...
\begin{tikzpicture}
\Vertex[x=0 ,y=0]{1}
\Vertex[x=0 ,y=2]{2}
\tikzset{EdgeStyle/.append style = {straight}}
\tikzset{EdgeStyle/.style={->}}
\Edge(1)(2)
\end{tikzpicture}
这将创建一个简单的有向图,其中两个节点(1
和2
)由蓝色箭头连接。但是,我想将箭头移动到线的中心(而不是将其留在尖端),并将其颜色更改为红色。有人能帮帮我吗?
答案1
您可以使用decoration.markings
库在中间位置设置标记。
但是,对于人眼来说,这看起来不像中间,因为只有箭尖介于(1)
和之间(2)
。
但您可以在该with {<code goes here>}
部分中使用任意 TikZ 代码。我克隆了第一个解决方案并对其进行了更改,以便它确实绘制了一个零长度箭头(没有线)。大部头书它看起来比第一个解决方案更好。
代码
\documentclass{article}
\usepackage{tikz,tkz-graph}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.markings}
\begin{document}
\SetVertexNormal[
Shape = circle,
LineWidth = 2pt
]
\SetUpEdge[
lw = 1.5pt,
color = blue
]
\begin{tikzpicture}
\Vertex[x=0 ,y=0]{1}
\Vertex[x=0 ,y=2]{2}
\tikzset{EdgeStyle/.append style = {straight}}
\tikzset{
EdgeStyle/.style={
postaction=decorate,
decoration={
markings,
mark=at position .5 with {\arrow{>}}
}
}
}
\Edge(1)(2)
\Vertex[x=0 ,y=0]{1}
\Vertex[x=0 ,y=2]{2}
\Vertex[x=1 ,y=0]{1}
\Vertex[x=1 ,y=2]{2}
\tikzset{
EdgeStyle/.style={
postaction=decorate,
decoration={
markings,
mark=at position .5 with {\draw[red,->] (0,0) (0,0);}
}
}
}
\Edge(1)(2)
\Vertex[x=1 ,y=0]{1}
\Vertex[x=1 ,y=2]{2}
\end{tikzpicture}
\end{document}
输出
仔细看看
您可以找到更多解决方案: TikZ:如何在线中间画箭头?