\tkzFindAngle을 사용하여 찾은 각도를 180과 비교할 수 없는 이유는 무엇입니까?

\tkzFindAngle을 사용하여 찾은 각도를 180과 비교할 수 없는 이유는 무엇입니까?

패키지 로 연습하고 있어요 tkz-euclide. 나는 이것을 실행하려고합니다 :

    \documentclass{article} 
    \usepackage{tkz-euclide,ifthen}

    \usetkzobj{all}
    \begin{document} 
    \begin{tikzpicture}[scale=4]
    \tkzInit[xmin=-1,xmax=1, ymin=-1,ymax=1]
    \draw (0,0) circle [radius=1];
    \tkzDefPoint(.3,.5){A}\tkzDefPoint(.5,.2){B}\tkzDefPoint(0,0){O}
    \tkzDrawPoints(A,B)
    \tkzFindAngle(A,O,B)\tkzGetAngle{hoek}
    \ifthenelse{\hoek<180}{\tkzDrawArc(O,A)(B);}{\tkzDrawArc(O,B)(A);};
    \end{tikzpicture}

    \end{document}

다음과 같은 오류 메시지가 나타납니다.

! Missing = inserted for \ifnum.
<to be read again> 
               .
l.12 \ifthenelse{\hoek<180}
                                 {\tkzDrawArc(O,A)(B);}{\tkzDrawArc(O,B)...

? H
I was expecting to see `<', `=', or `>'. Didn't.

A와 B 사이에 항상 동일한 호를 그리는 코드, 즉 짧은 코드나 긴 코드를 원합니다. 왜 이것이 작동하지 않습니까?

답변1

테스트 직전에 추가하면 \show\hoek테스트 텍스트가 중지되고 표시됩니다.

> \hoek=macro:
->-37.234850000000000000.

\ifnum(수치 테스트에 사용되는 것 \ifthenelse)은 정수인 tex 숫자용으로 설계되었습니다.

그래서 여기에서 불평합니다..

일반적인 TeX 트릭은 차원을 사용하여 정수가 아닌 값을 유지하는 것입니다.

    \ifthenelse{\lengthtest{\hoek pt<180pt}}{\tkzDrawArc(O,A)(B);}{\tkzDrawArc(O,B)(A);};

답변2

이것은 작동합니다:

\documentclass{article} 
    \usepackage{tkz-euclide,ifthen}

    \usetkzobj{all}
    \begin{document} 
    \begin{tikzpicture}[scale=4]
    \tkzInit[xmin=-1,xmax=1, ymin=-1,ymax=1]
    \draw (0,0) circle [radius=1];
    \tkzDefPoint(.3,.5){A}\tkzDefPoint(.5,.2){B}\tkzDefPoint(0,0){O}
    \tkzDrawPoints(A,B)
    \tkzFindAngle(A,O,B)\tkzGetAngle{hoek}
    \draw(0,0) node{\hoek};
    \pgfmathparse{(\hoek<180) ? 1 : 0 }
    \ifthenelse{\equal{\pgfmathresult}{1}}{\tkzDrawArc(O,A)(B);}{\tkzDrawArc(O,B)(A);}; 
    \end{tikzpicture}

    \end{document}

관련 정보