绘制与角度相关的弧的问题

绘制与角度相关的弧的问题

我需要绘制圆弧来表示等边三角形内的角度。为此,我在 calc 包的帮助下使用了 tikz 中的 arc 函数。但是,如果我使用自动解决方案来计算顶点之间的差异向量的度数,我会得到不理想的结果(以下示例代码中的黑色圆弧)。

\begin{tikzpicture}[scale=8]
\coordinate (center) at (0, 0);
\coordinate (A) at (-0.5, 0);
\coordinate (B) at (0.5, 0);
\coordinate (C) at (0, {sqrt(3)/2});
\draw (A) -- (B) -- (C) -- cycle;
\coordinate (C1) at ($(C)!0.1!(A)$);
\coordinate (C2) at ($(C)!0.1!(B)$);
\draw
   let \p1 = ($(C1) - (C)$),
   \p2 = ($(C2) - (C)$),
   \n0 = {veclen(\x1,\y1)},            
   \n1 = {atan2(\x1, \y1)},  
   \n2 = {atan2(\x2, \y2)}   
 in (C) arc(\n1:\n2:\n0);
\path
    let     \p1 = ($(C1) - (C)$),
\p2 = ($(C2) - (C)$),
\n0 = {veclen(\x1, \y1)},
\n1 = {atan2(\x1, \y1)},
\n2 = {atan2(\x2, \y2)}
in node at  (C) {$\n1,\, \n2$};
\draw[red] (C1) arc(240:300:0.1);
\end{tikzpicture}

如果我显示初始和最终角度的值,它们会以 pt 的形式显示,转换后的值会是 +60° 和 -60°。这些值显然是错误的。反之亦然,如果我手动设置正确的角度,那么弧线就没问题。不过,我需要使用“自动”解决方案,因为我无法手动计算更复杂图形的初始和最终角度。有人能告诉我如何解决这个问题吗?此外,有没有办法以度而不是点来显示初始和最终角度?非常感谢!

答案1

也许你只是想要这个?

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=8]
  \draw (-0.5,0) coordinate (A) -- (0.5,0) coordinate (B) -- (0,{sqrt(3)/2}) coordinate (C) -- cycle ($(C)!0.1!(A)$) coordinate (C1) ($(C)!0.1!(B)$) coordinate (C2);
  \draw
  let \p1 = ($(C1) - (C)$),
  \p2 = ($(C2) - (C)$),
  \n0 = {veclen(\x1,\y1)},
  \n1 = {atan2(\y1,\x1)},
  \n2 = {atan2(\y2,\x2)}
  in (C1) arc(\n1:\n2:\n0);
\end{tikzpicture}
\end{document}

角度

请注意,atan2将位y作为其第一个参数 - 而不是x- 并且应该从而不是arc开始。(C1)(C)

答案2

不确定你为什么决定应用如此大的比例,而不是仅仅使用更大的测量值。虽然这意味着要加载额外的包,但这里有一个示例tkz-euclide

输出

在此处输入图片描述

代码

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}

\begin{document}
\begin{tikzpicture}
\tkzDefPoint(-4,0){A}
\tkzDefPoint(4,0){B}

\tkzDefTriangle[equilateral](A,B)
\tkzGetPoint{C}

\tkzDrawPolygon(A,B,C)

\tkzMarkAngle[size=1cm](A,C,B)
\end{tikzpicture}
\end{document}

相关内容