Joe, que la formula de la parabola es y=a*x^2+b*x+c, si derivamos obtenemos que dy/dx=2*a*x+b, es decir que el incremento del incremento es lineal, por lo que tal y como lo hace Armando es matematicamente correcto, es como se tiene que hacer, no es ninguna chapuza.
Yo usaba este tipo de cosas en el driver de microcabin, donde obtienen el seno de una manera parecida, gracias a una aproximacion del coseno (que es la derivada del seno).
Ahi teneis
.
La chapuza viene de la poca precisión. Al no usar punto fijo los incrementos son de 1 mínimo (a no ser que los ejecutes cada x ints o algo así). Para afinar un poco esta fórmula y dar gravedades más interesantes (al igual que incrementos de X), pues se puede optar por pequeños puntos fijos sencillos que dan mucho más margen.
Un punto fijo sencillo de 4 bits, con 3 bits de parte entera y 1 de signo se puede hacer con 1 byte y te da bastante resolución para hacer cosas interesantes. Sin necesidad de usar 2 bytes (16 bits) con parte punto fijo y entera, que siempre es más costoso en los cálculos. Esto lo uso en los Goonies ahora mismo y me sobra para aceleraciones, saltos, etc...
el bit más alto lo uso de signo, los 3 siguientes de parte entera y los 4 más bajos de punto fijo. No es gran cosa, pero da buenos resultados, aunque te cuesta 4 srls cada vez que quieres sumar a las coordenadas finales, o bien sacar el valor entero. Pero es aceptable.
Pero que si, que la fórmula de la parábola no deja de ser la que tu has puesto. Y es que precisamente HOY me ha tocado implementar una en el curro pero un poco más compleja. Con punto inicial y final, y aceleración Y de salida como parámetro. Pero ahí ya tiro de floats así que no hay problemas con la resolución. Podría pasarlo a Z80 sin problemas si a alguien le interesa. Tiene un punto crítico que es el cálculo inicial pero luego solo queda la aceleración de los dos ejes (X e Y) que es lo que se va sumando en cada interrupción, vamos supersencillo y muy rápido.