Array di una traiettoria

di il
2 risposte

Array di una traiettoria

Ciao a tutti, ho un problema da risolvere per l'esame di informatica grafica, ho tutto il pogramma svolto, si tratta di una pallina che cade da diverse altezze, ma il mio prof, esige anche la traiettoria disegnata tramite un array. il problema è k nn sono in grado, qualkuno sà come fare?

2 Risposte

  • Re: Array di una traiettoria

    Scusate, dimenticavo questo è parte del codice e credo che l'array vada messo da qualk parte qui:
    import java.awt.event.*;
    import java.awt.*;
    import java.awt.geom.*;
    import java.util.*;
    import javax.swing.*;

    public class PannelloCaduta extends JPanel
    {
    private Rectangle piano;
    private Rectangle suolo;
    private Ellipse2D pallina;

    private Point2D.Double puntoPartenza;
    private Vector punti;
    private int statoAnim=-1;

    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D)g;

    suolo = CadutaFrame.suolo;
    g2.setColor(Color.black);
    g2.fill(suolo);

    if (piano==null) {

    piano = CadutaFrame.pianoAppoggio;
    g2.setColor(Color.blue);
    g2.fill(piano);

    pallina = CadutaFrame.pallina;
    g2.setColor (Color.red);
    g2.fill(pallina);


    } else {

    Double altPiano= new Double(puntoPartenza.getY());
    int altPianoInt = altPiano.intValue()+18;
    piano.setBounds(0,altPianoInt,100,15);
    g2.setColor (Color.blue);
    g2.fill(piano);

    if (statoAnim==-1) {

    pallina.setFrame(puntoPartenza.getX(),puntoPartenza.getY(),18.0,18.0);
    g2.setColor (Color.red);
    g2.fill(pallina);

    } else {

    Point2D.Double puntoPallina = (Point2D.Double) punti.get(statoAnim+1);
    pallina.setFrame(puntoPallina.getX(),puntoPallina.getY(),18.0,18.0);
    g2.setColor (Color.red);
    g2.fill(pallina);

    }
    statoAnim++;
    }
    }

    public void resetAnimazione() {
    this.statoAnim=-1;

    suolo = null;
    piano = null;
    pallina = null;

    }

    public int getStatoAnimazione() {
    return this.statoAnim;
    }

    public Point2D.Double getUltimoPunto() {
    return (Point2D.Double) punti.get(punti.size()-1);
    }

    public int nuovaTraiettoria(int vx, int h, int xp) {

    double dx=0;
    double xi=0;
    double yi=0;
    int yp=(675 - h) - 18;
    int incremento = 2;
    punti= new Vector();
    final double grav = 9.8;

    puntoPartenza = new Point2D.Double(xp,yp);

    double Vi2 = Math.pow(vx,2);

    double xi_prec=xi;
    while (yi<=657)
    {
    dx = ((xi-(xp+18))+ incremento);

    if (dx<0)
    dx=0;

    double dx2 = Math.pow(dx,2);

    xi= (xp+18) + dx;
    yi =(h - ((0.5*grav*dx2)/(Vi2)));
    yi = (675 - yi - 18);
    if (yi>657)
    yi=657.001;

    if ((vx<=10)||((Math.abs(xi-xi_prec)>=4.5)||(yi==657.001))) {
    Point2D.Double punto = new Point2D.Double(xi,yi);
    punti.add(punto);
    xi_prec=xi;
    }

    }

    return punti.size();

    }
    }
  • Re: Array di una traiettoria

    Per favore, un aiuto sto andando pazzo
Devi accedere o registrarti per scrivere nel forum
2 risposte