Um problema ao desenhar arcos associados a ângulos

Um problema ao desenhar arcos associados a ângulos

Preciso desenhar arcos para denotar ângulos dentro de um triângulo equilátero. Para fazer isso, estou usando a função arc no tikz com a ajuda do pacote calc. No entanto, se eu usar uma solução automática que calcula os graus dos vetores de diferença entre os vértices, obtenho um resultado indesejado (o arco preto no código de exemplo a seguir).

\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}

Se eu exibir os valores dos ângulos inicial e final, eles aparecerão em pt que convertidos são como +60° e -60°. Esses valores estão claramente errados. Vice-versa, se eu definir os ângulos corretos manualmente, o arco estará correto. No entanto, preciso passar pela solução "automática" porque não consigo calcular manualmente os ângulos inicial e final para figuras mais complexas. Alguém pode me dizer como resolver esse problema? Além disso, existe uma maneira de exibir os ângulos inicial e final em graus e não em pontos? Muito obrigado!

Responder1

Talvez você só queira isso?

\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}

ângulo

Observe que atan2o ybit é considerado o primeiro argumento - não o x- e que o arcdeve começar com (C1)e não (C).

Responder2

Não sei por que você decidiu aplicar uma escala tão grande, em vez de usar apenas medidas maiores. Embora isso signifique carregar um pacote extra, aqui está um exemplo com tkz-euclide.

Saída

insira a descrição da imagem aqui

Código

\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}

informação relacionada