TikZ 角度标签-帮助它更好地“适应”吗?

TikZ 角度标签-帮助它更好地“适应”吗?

我用 TikZ 绘制了以下内容

在此处输入图片描述

使用代码

\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\draw (O) circle (3);
\coordinate[label = above left:$M$] (M) at (130:3);
\coordinate[label = above:$N$] (N) at (80:3);
\coordinate[label = below:$A$] (A) at (240:3);
\coordinate[label =below right:$B$] (B) at (300:3);
\draw (A) -- (M) -- (B);
\draw (A) -- (N) -- (B);
\tkzMarkAngle[draw = black, fill = white, opacity=1](A,M,B)
\tkzLabelAngle[pos = 0.8](A,M,B){$x$}
\tkzMarkAngle[pos = 0.2,draw = black, fill = white, opacity=1](A,N,B)
\tkzLabelAngle [pos=0.8](A,N,B){$27 ^{\circ}$}
\end{tikzpicture}
\end{document}

但请注意,27 度不太合适。我该如何调整代码,尝试将 27 稍微“降低”一点,以便它以及角度标记更好地适应?

另外,如何才能在线 AM 和 BN 中间得到两个“双箭头”,以表明它们是“平行”的?

答案1

  1. 使用size=<length>\tkzMarkAngle控制标记所用圆弧的半径。

  2. 使用pos\tkzLabelAngle将标签移离(或靠近)角度的顶点。

    • 您还可以尝试稍微减小字体大小:

      \tkzMarkAngle[size=1.3,draw = black, fill = white, opacity=1](A,N,B)
      \tkzLabelAngle[pos=1.1,font=\scriptsize](A,N,B){$27 ^{\circ}$}
      
  3. 尽管 tkz-euclide 提供了\tkzMarkSegments在线段上放置标记的功能,但我在下面选择使用箭头进行装饰,绘制两组箭头来表示平行。

  4. 您的线 AM 和 BN 不平行。我在下面提供了一些代码来获取真正的平行线(在此答案的编辑历史中有一个包含原始非平行线的版本)。

代码:

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}

\tikzset{
  middlearrows/.style={
    decoration={             
      markings, 
      mark=at position 0.48 with {\arrow{triangle 45};},
      mark=at position 0.52 with {\arrow{triangle 45};}
      },
  postaction={decorate}
  }
}

\begin{document}

\begin{tikzpicture}[line join=round]
\coordinate (O) at (0,0);
\coordinate[label = above left:$M$] (M) at (130:3);
\coordinate[label = above:$N$] (N) at (80:3);
\coordinate[label = below:$A$] (A) at (240:3);

% parallel to MA passing through N
\tkzDefLine[parallel=through N](M,A)
\tkzGetPoint{Aux}
% Intersections between the parallel and the circle
\tkzInterLC(N,Aux)(O,M)
\tkzGetPoints{N}{B}
\tkzLabelPoints(B)

\tkzDrawSegments(M,B N,A)

\tkzMarkAngle[draw = black, fill = white, opacity=1](A,M,B)
\tkzLabelAngle[pos = 0.8](A,M,B){$x$}

\tkzMarkAngle[size=1.4,draw = black, fill = white, opacity=1](A,N,B)
\tkzLabelAngle[pos=1.15,font=\scriptsize](A,N,B){$27 ^{\circ}$}

\draw[middlearrows] (A) -- (M); 
\draw[middlearrows] (B) -- (N); 

\tkzDrawCircle[R](O,3cm)
\end{tikzpicture}

\end{document}

结果:

在此处输入图片描述

相关内容