각도와 관련된 호를 그리는 데 문제가 있습니다.

각도와 관련된 호를 그리는 데 문제가 있습니다.

정삼각형 내부의 각도를 나타내기 위해 호를 그려야 합니다. 이를 위해 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}

초기 각도와 최종 각도 값을 표시하면 +60° 및 -60°와 같이 변환된 pt로 표시됩니다. 이 값은 분명히 잘못되었습니다. 반대로 올바른 각도를 수동으로 설정하면 호가 괜찮습니다. 그럼에도 불구하고 더 복잡한 수치의 경우 초기 각도와 최종 각도를 수동으로 계산할 수 없기 때문에 "자동" 솔루션을 거쳐야 합니다. 누구든지 이 문제를 해결하는 방법을 말해 줄 수 있나요? 또한 초기 각도와 최종 각도를 포인트가 아닌 도 단위로 표시하는 방법이 있습니까? 매우 감사합니다!

답변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취하며 , 비트는 에서 시작해야 하며 not 에서 시작해야 합니다 .yxarc(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}

관련 정보