我如何使用 全局控制角度和标记的样式,特别是颜色和线条粗细/长度tkz-euclide
?我不确定如何mkcolor
全局设置样式。
我希望使用 tkz-euclide 重现下图,以便能够使用 全局控制样式\tkzSetUpStyle
。我希望能够利用mark=||
和其他标记样式,但我需要控制颜色和长度(使用此处的默认值,标记||
是黑色且太长)。例如,\tkzMarkAngle[size=0.5,mark=x,arc=ll,mkcolor=orange,new](A,C,O)
我希望mkcolor=orange
在 中全局设置new
样式。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{quotes,angles}% needed for experiments
\tkzSetUpStyle[color=orange,angle radius=15pt]{new}
\tikzset{%
smaller arc/.style={angle radius=10pt},
double arc/.style={double,double distance=2pt},
triple arc/.style={double distance=4pt,
pic actions/.append code=\tikzset{postaction={draw}}}
}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/0/B,1/4/C}
\tkzLabelPoint[below left](A){$A$}
\tkzLabelPoint[below right](B){$B$}
\tkzLabelPoint[above](C){$C$}
% compute the center
\tkzInCenter(A,B,C)\tkzGetPoint{O}\tkzDrawPoint[new](O)
% tikz/pic way, because mark colors and styles are complicated with tkz-euclide
\path (A) -- (B) -- (C)
pic[new, double arc, draw]{angle=C--B--O}
pic[new, double arc, draw, smaller arc]{angle=O--B--A}
pic[new, draw]{angle=O--A--C}
pic[new, draw, smaller arc]{angle=B--A--O}
pic[new, triple arc, draw]{angle=A--C--O}
pic[new, triple arc, draw, smaller arc]{angle=O--C--B}
-- cycle;
\draw [new] (A) -- (O)--(intersection of A--O and B--C);
\draw [new] (B) -- (O)--(intersection of B--O and A--C);
\draw [new] (C) -- (O)--(intersection of C--O and B--A);
\tkzDrawPolygon(A,B,C)% draw this last
\end{tikzpicture}
\end{document}
答案1
这些选项有点隐藏,但您可以通过添加前缀来访问它们/tkzmkangle/
:
\documentclass[border=3.14mm]{standalone}
\usepackage{tkz-euclide}
\tkzSetUpStyle[
color=orange,
/tkzmkangle/mkcolor=orange,
/tkzmkangle/mark=||,
]{new}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/0/B,1/4/C}
\tkzLabelPoint[below left](A){$A$}
\tkzLabelPoint[below right](B){$B$}
\tkzLabelPoint[above](C){$C$}
% compute the center
\tkzInCenter(A,B,C)\tkzGetPoint{O}
\tkzDrawPoint[new](O)
\tkzInterLL(A,O)(B,C)\tkzGetPoint{a}
\tkzInterLL(B,O)(A,C)\tkzGetPoint{b}
\tkzInterLL(C,O)(A,B)\tkzGetPoint{c}
\tkzDrawSegments[new](A,a B,b C,c)
\tkzMarkAngle[size=0.6, arc=lll, new](A,C,O)
\tkzMarkAngle[size=0.5, arc=lll, new](O,C,B)
\tkzDrawPolygon(A,B,C) % draw this last
\end{tikzpicture}
\end{document}
答案2
第一个观察:宏tkzMarkAngle
没有像点或线那样的自己的样式。我可以angle style
在未来版本中添加样式。话虽如此,它不会从根本上改善一切,因为有很多选择。
正如 Jasper Habicht 指出的那样,您需要指定路径才能使用大小和弧线样式。这些是 tkz-euclide 特有的。\tkzSetUpStyle
您只能使用 TikZ 样式。
我给出了一个使用 tkz-elements 的解决方案,但第二部分涉及 tkz-euclide,这很常见。
代码注释tkz-elements
。您可以将其替换为创建点的代码部分。E接下来,使用 lualatex 进行编译。我们定义固定点 A、B 和 C。zA、zB 和 zC 与点的词缀相关联。然后我们定义三角形,创建时,该三角形T.ABC
具有诸如 之类的属性incenter
,但我们可以使用 a、b 和 c 作为边长,或使用 alpha、beta 和 gamma 作为角度,等等。对于角平分线,第一个角平分线是顶点 A 的角平分线,(1) 和 (2) 然后表示我们正在移动到下一个顶点......最后的微妙之处是.pb
。角平分线是类的对象line
,其第一个属性是 pa 和 pb 引用的两个点。这里,pb
表示角平分线的脚。
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{tkz-elements}
\begin{document}
\begin{tkzelements}
z.A = point : new (0 , 0)
z.B = point : new (5 , 0)
z.C = point : new (1 , 4)
T.ABC = triangle : new ( z.A , z.B , z.C )
z.O = T.ABC.incenter
z.E = T.ABC : bisector ().pb
z.F = T.ABC : bisector (1).pb
z.G = T.ABC : bisector (2).pb
\end{tkzelements}
\begin{tikzpicture}[ new/.style ={ color=orange },
one/.style ={ new,/tkzmkangle/size=.5 },
two/.style ={ new,/tkzmkangle/size=.6 },
l/.style ={ /tkzmkangle/arc=l },
ll/.style ={ /tkzmkangle/arc=ll },
lll/.style ={ /tkzmkangle/arc=lll }
]
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments[new](A,E B,F C,G)
\tkzDrawPoints(A,B,C,E,F,G,O)
\begin{scope}[one]
\tkzMarkAngles[l](B,A,E)
\tkzMarkAngles[ll](C,B,F)
\tkzMarkAngles[lll](A,C,G)
\end{scope}
\begin{scope}[two]
\tkzMarkAngles[l](E,A,C)
\tkzMarkAngles[ll](F,B,A)
\tkzMarkAngles[lll](G,C,B)
\end{scope}
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
\end{document}