如何在圆圈的中间画一个箭头以及如何定位箭头?

如何在圆圈的中间画一个箭头以及如何定位箭头?

我的问题与TikZ:如何在线中间画箭头?

我的例子:我喜欢有两个圆圈 - 我想将圆圈 1 的箭头定位在圆圈 1 的西南偏南位置,将圆圈 2 的箭头定位在圆圈 2 的东北偏北位置。

我的个人“秘诀”:

\usetikzlibrary{decorations.markings}
\usetikzlibrary{arrows}
\usetikzlibrary{through}
\usetikzlibrary{automata,backgrounds}
\begin{tikzpicture}[node distance=2cm]
\begin{scope}[every node/.style={sloped,allow upside down,circle,
  fill=black,inner sep=2pt}]
\node[draw,fill=white,inner sep=10pt, xshift=-0.49cm] (loop) {};
\node (n1){} ;
\node[draw,fill=white,inner sep=10pt,right of=n1,xshift=0.49cm] (loop2) {};
\node (n2) [right of=n1] {};
\end{scope}
\draw (loop)-- node {\midarrowcirc} (loop);
\draw (n1)-- node {\midarrow} (n2);
\draw (loop2)-- node {\midarrowcirc} (loop2);
\end{tikzpicture}

不幸的是我无法定位箭头。感谢您的帮助!

PS 抱歉,也许库太多了 - 这是基于我的试验...

答案1

这就是我解决问题的方法(假设我理解正确):

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\begin{document}
\begin{tikzpicture}
    % draw the two circles and decorate them with arrows
    \draw[
        decoration={markings, mark=at position 0.625 with {\arrow{>}}},
        postaction={decorate}
        ]
        (0,0) circle (0.5);
    \draw[ 
        decoration={markings, mark=at position 0.125 with {\arrow{>}}},
        postaction={decorate}
        ]
        (3,0) circle (0.5);

    % draw the connecting line
    \draw[ 
        decoration={markings, mark=at position 0.5 with {\arrow{>}}},
        postaction={decorate}
        ]
        (0.5,0) -- (2.5,0);

    % draw the two black dots
    \fill (0.5,0) circle (0.1); 
    \fill (2.5,0) circle (0.1); 
\end{tikzpicture}
\end{document}

例子

绘制圆形的说明见 TikZ 手册 14.7 节“圆形和椭圆形操作”(所有编号均参考 v2.10 手册)。一般语法为(<center>) circle (<radius>)

箭头是作为装饰添加的(第 21 章“装饰路径”和第 30 章“装饰库”)。具体来说,我们在给定位置添加箭头形式的标记。位置在 [0,1] 范围内,0 表示路径的起点,1 表示路径的终点。圆总是从最右边的点开始和结束,并逆时针移动。

由于标记装饰在没有先绘制路径的情况下用指定路径替换路径,所以我们需要先正常绘制圆圈,然后再添加装饰postaction(作用于路径的副本)。

相关内容