Dibujé un gráfico de parábola y = 0.5 - a x^2
que cruza el eje x en los puntos de "raíces" 0.75
y -0.75
tiene una curva en la coordenada (0, 0.5)
. Y quiero marcar un punto en la parábola, que tiene una coordenada 0.33 * \rootPosition
en el eje x. (Aquí \rootPosition
hay un número 0.75
). Escribí el siguiente 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}
Pero cuando compilo este código, aparece el error
! Incomplete \iffalse; all the text ignored after line 14
, donde la línea 14 comienza con\coordinate (arbitrary_point)..
¿Qué ocurre?
Respuesta1
No debes utilizar el carácter de subrayado en los nombres de las macros, aunque TikZ lo maneja suficientemente bien en la mayoría de los casos. El carácter de subrayado es un comando de subíndice del modo matemático y puede evitarlo de forma segura con otros tipos.
El principal problema es que las operaciones matemáticas no se expanden a un resultado cuando se encuentran en la ruta. Guardan el resultado en una macro llamada \pgfmathresult
y el analizador tiene que verla pero no los 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}