我使用 \tkzMarkAngle(A,O,P) 来标记角度。我希望这个标记(它只是一个圆弧)变成一个箭头,以表示旋转。我该怎么做?
答案1
下面是一个例子(厚颜无耻地从tkz-euclide
手册中偷来的):
\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\usetkzobj{all}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[scale=2]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(2,2){B}
\tkzDefPointsBy[symmetry=center O](B,A){}
\tkzDrawLine(A,A')
\tkzDrawLine(B,B')
\tkzMarkAngle[mark=s,arc=l,size=2 cm,mkcolor=red,line width=2pt,arrows=->](A,O,B)
\end{tikzpicture}
\end{document}
但您也可以使用如下装饰:
\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\usetkzobj{all}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[scale=2,my arrow/.style={decorate,decoration={markings,mark=at position 1 with {\arrow[scale=4]{>}};}}]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(2,2){B}
\tkzDefPointsBy[symmetry=center O](B,A){}
\tkzDrawLine(A,A')
\tkzDrawLine(B,B')
\tkzDrawArc[postaction={my arrow}](O,A)(B)
\end{tikzpicture}
\end{document}
要得到
更新
mark=at position 1 with ...
当 TikZ 认为1
已经超出路径末尾时,这似乎并不总是有效。因此,你可以使用以下方法修改它:
mark=at position -0.1pt with ...
负距离告诉 TikZ 将装饰物放置在路径的末端。我建议距离可以忽略不计。此外,如果你已经加载了 TikZ 库calc
,你可以写类似
\coordinate (tOA) at ($(O)!2cm!(A)$);
\tkzDrawArc[postaction={my arrow}](O,tOA)(B)
控制圆弧与角顶点之间的距离。