TikZ-pgf 有向图:更改箭头颜色和位置

TikZ-pgf 有向图:更改箭头颜色和位置

我有类似的东西:

\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}

这将创建一个简单的有向图,其中两个节点(12)由蓝色箭头连接。但是,我想将箭头移动到线的中心(而不是将其留在尖端),并将其颜色更改为红色。有人能帮帮我吗?

答案1

认为你正在使用 TikZ,并且tkz-graph

您可以使用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:如何在线中间画箭头?

相关内容