Tkz-Euclide 标签问题

Tkz-Euclide 标签问题

我正在用来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}

在此处输入图片描述

相关内容