pgfmath 관련 문제

pgfmath 관련 문제

y = 0.5 - a x^2나는 "뿌리" 지점에서 x축을 가로지르고 0.75좌표 -0.75에서 구부러진 포물선 그래픽을 그렸습니다 (0, 0.5). 그리고 0.33 * \rootPositionx축에 좌표가 있는 포물선 위에 한 점을 표시하고 싶습니다 . (여기에 \rootPosition숫자가 있습니다 0.75). 나는 다음 코드를 작성했다

\documentclass[tikz]{standalone}
\usepackage{tikz, pgfmath} 

\begin{document}
\begin{tikzpicture} [scale=3, >=stealth]

\def\bendPosition{0.5};
\def\rootPosition{0.75};
\def\coeffA{\pgfmathdivide{\bendPosition}{\pgfmathpow{\rootPosition}{2}}};

\draw[thick] (-\rootPosition,0) parabola bend (0, \bendPosition) (\rootPosition, 0);

\def\arbitraryPosition{0.33 * \rootPosition};

\coordinate (arbitrary_point) at (\arbitraryPosition, \bendPosition - \coeffA* \pgfmathpow{\arbitraryPosition}{2}));

\filldraw[black] (arbitrary_point) circle(0.4pt);       
\end{tikzpicture}
\end{document}

하지만 이 코드를 컴파일하면 ! Incomplete \iffalse; all the text ignored after line 1414줄이 다음으로 시작하는 오류가 발생합니다.\coordinate (arbitrary_point)..

뭐가 문제 야?

답변1

TikZ가 대부분의 경우 충분히 잘 처리하더라도 매크로 이름에 밑줄 문자를 사용하면 안 됩니다. 밑줄 문자는 수학 모드 아래 첨자 명령이며 다른 유형에서는 안전하게 피할 수 있습니다.

주요 문제는 수학 연산이 경로에서 발견될 때 결과로 확장되지 않는다는 것입니다. 그들은 호출된 매크로에 결과를 저장 \pgfmathresult하고 파서는 그 결과를 보아야 하지만 수학 연산자는 볼 수 없습니다.

\begin{tikzpicture} [scale=3, >=stealth]
\def\bendPosition{0.5};
\def\rootPosition{0.75};
\pgfmathsetmacro\coeffA{\bendPosition/(\rootPosition)^2}
\draw[thick] (-\rootPosition,0) parabola bend (0, \bendPosition) (\rootPosition, 0);
\pgfmathsetmacro\arbitraryPosition{0.33 * \rootPosition}
\coordinate (arbitrary_point) at (\arbitraryPosition, {\bendPosition - \coeffA* (\arbitraryPosition)^2});
\filldraw[black] (arbitrary_point) circle(0.4pt);       
\end{tikzpicture}

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

관련 정보