Hola queria saber como se calculan raices cuadradas con bennu. Lo necesito para crear un movimiento eliptico, cuya formula es:
2 2
X Y 1
__ + __ =
a b
Démosle un vistazo a la wiki:
http://wiki.bennugd.org/index.php?title=Sqrt
(o a mi manualillo)
Venga, hasta luego!
Recuerda que las raices devuelven float, si lo guardas en un entero Bennu trunca, para redondear tendras que hacer una funcion que redondee.
Es más fácil usando funciones trigonométricas: dado que un círculo se dibujaría como
x=x0+a*cos(angle);
y=y0+a*sin(angle);
donde a es el radio y angle es eso, el ángulo respecto a la horizontal, y (x0,y0) el punto central. De esta forma el círculo tiene un radio constante respecto a ambos ejes.
Pues como una elipse no es más que una circunferencia bastaría con "estirar" uno de los ejes:
x=x0+a*cos(angle);
y=y0+b*sin(angle);
donde a es el radio horizontal (el radio máximo horizontalmente) y b el vertical (el radio máximo verticalmente). Ejemplo:
x=150+10*cos(angle);
y=100+20*sin(angle);
Obtenemos un movimiento elíptico, centrado en (150,100), con un ancho de 10+10 pixels y un alto de 20+20 pixels.
Es el método que usé en FL para el menú de configuración, junto con una fórmula similar para alterar el size, y daba una sensación genial de 3D.
muchas gracias. Estudiaré ambas opciones a ver por cual me decido.
Juanpe, mejor usa la fórmula de Drumpi. Al final es lo mismo y piensa que si haces:
y=sqrt(b*(1-x^2/a));
Siempre te va a salir positivo, de forma que sólo podrías recorrer la parte superior de la elipse (y>0) o tendrías que hacer apaños raros para ir pasando de la parte superior a la inferior.
Sin embargo, con lo que te dice Drumpi, sale sólo sin más que aumentar al ángulo.
tienes razon josebita. Así es mucho más cómodo, que no estamos para complicarnos la vida :D