Alguien sabe Formula para dibujar una parabola en java?

Iniciado por danielo-, 24 Noviembre 2009, 03:55 AM

0 Miembros y 2 Visitantes están viendo este tema.

danielo-

Esque necesito simular la trayectoria de un balon pero pues.... no se como podria hacer para simularlo.. No me digan con un drawArc, no me sirve, necesito dibujar la parabola... osea solo el balon se vera y se ira viendo su movimeinto.. Me imagino que se usaria una formula matematica..ayuda porfa!!!!!

Debci

Cita de: danyelk_6u5 en 24 Noviembre 2009, 03:55 AM
Esque necesito simular la trayectoria de un balon pero pues.... no se como podria hacer para simularlo.. No me digan con un drawArc, no me sirve, necesito dibujar la parabola... osea solo el balon se vera y se ira viendo su movimeinto.. Me imagino que se usaria una formula matematica..ayuda porfa!!!!!
Las parabolas tienen funciones caracteristicas, en concreto:
f(x)=ax(al cuadrado) + bx + c
Donde a b y c son coeficientes que indican, desplazamiento del vertice de la parabola[...]

Saludos

danielo-

BUENO..LUEGO LUEGO SE VE PRENDIÓ EL FOCO, cual es la formula de una parabola?: ps y=x² y ya , eso es todo, representarlo en java.. aunque tuve que tomar en cuenta que las coordenadas no se manejarian de 0->infinito ya que el 0 en el frame vendria dado en la esquina superior izquierda y no en la esquina inferior izquierda como esperaba..les dejo el código:

y luego luego un juego basado en esta parabola jejej...no lo puedo subir ahorita porque no lo e entregado  ;D

Código (java) [Seleccionar]
import java.awt.*;
import javax.swing.*;
class MiArco extends JFrame{
//int x=250,y=200;
final int fx=400,fy=400;
int x,y;

public MiArco(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(2000,2000);
setVisible(true);
}

public void m(){
int t=15;
for(int h=0;h<t;h++){
int auxx=t-h;
int auxy=auxx*auxx;
try{ Thread.sleep(15);}catch(Exception e){}
x=(fx-auxx*12);
y=(fy+auxx*auxx);
repaint();
}
try{ Thread.sleep(50);}catch(Exception e){}

for(int h=0;h<t;h++){
int auxx=h;
int auxy=auxx*auxx;
try{ Thread.sleep(15);}catch(Exception e){}
x=(fx+auxx*12);
y=(fy+auxx*auxx);
repaint();
}

}

public void paint(Graphics g){
try{
Thread.sleep(10);
}catch(Exception e){}
System.out.println("x"+x+"y"+y);
g.fillOval(x,y, 5,5);
}

public static void main(String arg[]){
MiArco mi=new MiArco();
try{ Thread.sleep(1000);}catch(Exception e){}
mi.m();
}
}

egyware

mucho codigo, lo haria de otra forma aunque talvez no sea la mas optima
seria dejar la funcion de la forma y = f(x), entonces en un solo for
a<=x<=b
for(int x=a;i<=b;i++)
   graphics.drawLine(x,f(x),x,f(x));//dibuja un punto