Desenhei um gráfico de parábola y = 0.5 - a x^2
que cruza o eixo x nos pontos "raízes" 0.75
e -0.75
tem uma curvatura na coordenada (0, 0.5)
. E quero marcar um ponto na parábola, que tem uma coordenada 0.33 * \rootPosition
no eixo x. (Aqui \rootPosition
está um número 0.75
). Eu escrevi o seguinte código
\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}
Mas quando compilo esse código, recebo o erro
! Incomplete \iffalse; all the text ignored after line 14
, onde a linha 14 começa com\coordinate (arbitrary_point)..
O que está errado?
Responder1
Você não deve usar o caractere de sublinhado nos nomes das macros, mesmo que o TikZ o lide suficientemente bem na maioria dos casos. O caractere sublinhado é um comando subscrito do modo matemático e você pode evitá-lo com segurança com outros tipos.
O principal problema é que as operações matemáticas não se expandem para um resultado quando encontradas no caminho. Eles salvam o resultado em uma macro chamada \pgfmathresult
e o analisador precisa ver essa, mas não os operadores matemáticos.
\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}