对于这个例子我有两个疑问:路径上的圆形箭头和文字1. 是否可以将 \arcarrow 相对于某个节点定位? 2. 是否可以将箭头 0、60、120 中的文本从左到右排列,而不是上下颠倒?这样(不太合逻辑,但)更易于阅读。
\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\newcommand{\arcarrow}[8]% inner radius, middle radius, outer radius, start angle, end angle, tip protusion angle, options, text
{ \pgfmathsetmacro{\rin}{#1}
\pgfmathsetmacro{\rmid}{#2}
\pgfmathsetmacro{\rout}{#3}
\pgfmathsetmacro{\astart}{#4}
\pgfmathsetmacro{\aend}{#5}
\pgfmathsetmacro{\atip}{#6}
\fill[#7] (\astart:\rin) arc (\astart:\aend:\rin) -- (\aend+\atip:\rmid) -- (\aend:\rout) arc (\aend:\astart:\rout) -- (\astart+\atip:\rmid) -- cycle;
\path[decoration={text along path, text={#8}, text align={align=center}, raise=-0.5ex},decorate] (\astart+\atip:\rmid) arc (\astart+\atip:\aend+\atip:\rmid);
}
\begin{document}
\begin{tikzpicture}
\fill[even odd rule,red!30] circle (3.8) circle (3.2);
\foreach \x in {0,60,...,300}
{ \arcarrow{3}{3.5}{4}{\x+20}{\x+70}{5}{red,draw=red!50!black,very thick}{text \x}
}
\end{tikzpicture}
\end{document}