Tikz 일반 다각형 모서리 이름

Tikz 일반 다각형 모서리 이름

다음 코드는 No shape named S.corner 1 is known.오류를 발생시킵니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{angles}
\usetikzlibrary{shapes}
\usetikzlibrary{shapes.geometric}
\begin{document}
    \begin{tikzpicture}
        \node[name=S,regular polygon, regular polygon sides=9, draw, minimum width=6cm] at (0,0) {};
        \pic [draw, angle radius=.6cm] {angle = S.corner 1--S.corner 6--S.corner 5};
    \end{tikzpicture}
\end{document}

답변1

tikzlibraryangles.code.tex포함

\def\tikz@lib@rightangle@background#1--#2--#3\pgf@stop{%
  \path [name prefix ..] [pic actions, draw=none] (#2.center)
    -- ++(\tikz@start@angle@temp:\tikz@lib@angle@rad pt)
    -- ++(\tikz@end@angle@temp:\tikz@lib@angle@rad pt)
    -- ++(\tikz@start@angle@temp:-\tikz@lib@angle@rad pt)
    -- cycle;
}%

.center두 번째 좌표에 연결되는 것을 볼 수 있습니다 #2. #2이미 앵커인 경우에는 작동하지 않습니다 . 이 문제를 해결하려면(재정의 \tikz@lib@rightangle@background및 첨부된 다른 명령 대신 .center) 보조 좌표만 정의하면 됩니다.

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{angles}
\usetikzlibrary{shapes}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
    \node[name=S,regular polygon, 
    regular polygon sides=9, draw, minimum width=6cm] at (0,0) {};
    \path foreach \X in {1,...,9} {(S.corner \X) coordinate (corner \X)};
    \pic [draw, angle radius=.6cm] {angle = corner 1--corner 6--corner 5};
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보