Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: juanpe on December 23, 2009, 03:09:49 PM

Title: raices cuadradas
Post by: juanpe on December 23, 2009, 03:09:49 PM
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



Title: Re: raices cuadradas
Post by: osk on December 23, 2009, 03:45:22 PM
Démosle un vistazo a la wiki:
http://wiki.bennugd.org/index.php?title=Sqrt
(o a mi manualillo)
Venga, hasta luego!

Title: Re: raices cuadradas
Post by: Windgate on December 23, 2009, 07:18:20 PM
Recuerda que las raices devuelven float, si lo guardas en un entero Bennu trunca, para redondear tendras que hacer una funcion que redondee.
Title: Re: raices cuadradas
Post by: Drumpi on December 24, 2009, 02:37:17 AM
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.
Title: Re: raices cuadradas
Post by: juanpe on December 29, 2009, 08:50:54 PM
muchas gracias. Estudiaré ambas opciones a ver por cual me decido.
Title: Re: raices cuadradas
Post by: josebita on December 29, 2009, 09:07:03 PM
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.
Title: Re: raices cuadradas
Post by: juanpe on January 08, 2010, 11:11:19 PM
tienes razon josebita. Así es mucho más cómodo, que no estamos para complicarnos la vida :D