y = 0.5 - a x^2
나는 "뿌리" 지점에서 x축을 가로지르고 0.75
좌표 -0.75
에서 구부러진 포물선 그래픽을 그렸습니다 (0, 0.5)
. 그리고 0.33 * \rootPosition
x축에 좌표가 있는 포물선 위에 한 점을 표시하고 싶습니다 . (여기에 \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 14
14줄이 다음으로 시작하는 오류가 발생합니다.\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}