我正在用来tkz-euclide
绘制一些图表。
\begin{tikzpicture}
\tkzDefPoints{0/0/O,4/0/P}
\tkzDrawCircle(O,P)
\tkzDefPointBy[rotation= center O angle -60](P)
\tkzGetPoint{A}
\tkzDefPointBy[rotation= center O angle -120](P)
\tkzGetPoint{B}
\tkzDrawSegments(O,A O,B)
\tkzLabelPoints[below right](A){$A$}
\tkzLabelPoints[below left](B){$B$}
\tkzDrawSector[R with nodes,fill=gray!20](O,4)(B,A)
\tkzLabelSegment(O,A){\SI{5}{\centi\m}}
\tkzLabelArc[below](O,B,A){$7$}
\end{tikzpicture}
我的问题是中心标签。代码似乎被覆盖了,我不知道我做了什么让它这样做!
7 是之前问题的遗留问题。我留下了这个标签,因为我当时正在尝试让其他标签正确!
答案1
我知道问题是关于的tkz-euclide
,但仅仅为了比较,这里是仅使用的代码tikz
,这对某些用户来说可能是更好的选择。
\documentclass{article}
\usepackage{tikz}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\draw coordinate(O) circle[radius=4cm];
\draw[fill=gray!20] (-60:4)node[below right]{$A$}--node[right]{\SI{5}{\centi\m}} (O)
--(-120:4)node[below left]{$B$} arc (-120:-60:4)node[midway, below]{7};
\end{tikzpicture}
\end{document}
答案2
你犯了一个错误:
您需要 \tkzLabelPoint[below right](A){$A$}
而不是\tkzLabelPoints[below right](A){$A$}
。使用 时,\tkzLabelPoints
您不能放置,{$A$}
因为此宏允许您放置多个标签,并且标签会自动放置。最好使用\tkzDrawSector[fill=gray!20](O,B)(A)
以避免使用数值
\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/O,4/0/P}
\tkzDrawCircle(O,P)
\tkzDefPointBy[rotation= center O angle -60](P)
\tkzGetPoint{A}
\tkzDefPointBy[rotation= center O angle -120](P)
\tkzGetPoint{B}
\tkzDrawSegments(O,A O,B)
\tkzLabelPoint[below right](A){$A$}
\tkzLabelPoint[below left](B){$B$}
\tkzDrawSector[fill=gray!20](O,B)(A)
\tkzLabelSegment(O,A){\SI{5}{\centi\m}}
\tkzLabelArc[below](O,B,A){$7$}
\end{tikzpicture}
\end{document}
更新:三角形是等边的
\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/B,5/0/A}
\tkzDefTriangle[equilateral](B,A) \tkzGetPoint{O}
\tkzDrawCircle(O,A)
\tkzDrawPolygon(A,B,O)
\tkzFillSector[fill=gray!20](O,B)(A)
\tkzLabelPoint[below right](A){$A$}
\tkzLabelPoint[below left](B){$B$}
\tkzLabelPoint[above](O){$O$}
\tkzLabelSegment[right](O,A){\SI{5}{\centi\m}}
\tkzLabelArc[below](O,B,A){$7$}
\end{tikzpicture}
\end{document}
很快tkz-elements
使用 lua 和几乎对象编程都是可能的。
这里不是特别有趣,因为图形非常简单,但优点是一旦计算完成,您就可以使用TikZ
,或tkz-euclide
,或另一个包。
\documentclass{article}
\usepackage{tkz-euclide,tkz-elements}
\usepackage{siunitx}
\begin{document}
\begin{elements}
z.B = point: new (0,0)
z.A = point: new (5,0)
L = line: new (z.B,z.A)
z.O = L:tr_equilateral ()
\end{elements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzDrawPolygon(A,B,O)
\tkzFillSector[fill=gray!20](O,B)(A)
\tkzLabelPoint[below right](A){$A$}
\tkzLabelPoint[below left](B){$B$}
\tkzLabelPoint[above](O){$O$}
\tkzLabelSegment[right](O,A){\SI{5}{\centi\m}}
\tkzLabelArc[below](O,B,A){$7$}
\end{tikzpicture}
\end{document}