Hallo, ich habe folgende Klasse, die eine Kanonenkugel erstellt:
Mithilfe von einem Abschusswinkel und einer Abschussgeschwindigkeit werden die beiden Vektoren der Bewegung berechnet:
Mein Problem ist jetzt folgendes:
Ich habe einen Anfangspunkt A(x|y) und einen Zielpunkt Z(x|y).
Wie berechne ich jetzt die Anfangsgeschwindigkeit und den Winkel, sodass die Kugel bei A losfliegt und Punkt Z auf der Flugbahn liegt?
Java:
package Data;
import java.util.Timer;
import java.util.TimerTask;
public class Kanonenkugel {
private Timer timer;
private double position_x; //aktuelle position (x;y)
private double position_y;
private double bewegung_x; //speed in x bzw. y richtung
private double bewegung_y;
private double wind = 0; //wind
private double schwerkraft; //fallbeschleunigung
private double masse; //masse des objekts
private double aero; //luftwiderstand
private int size;
public Kanonenkugel(int start_x, int start_y, double wurf_x, double wurf_y, double masse, double aero, double schwerkraft, int size) {
this.position_x=start_x;
this.position_y=start_y;
this.bewegung_x=wurf_x;
this.bewegung_y=wurf_y;
this.masse=masse;
this.aero=aero;
this.schwerkraft=schwerkraft;
this.size = size;
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
nextStep();
}
}, 0, 20);
}
public void nextStep() {
bewegung_x+=wind*aero;
bewegung_y+=schwerkraft*masse;
position_x+=bewegung_x;
position_y+=bewegung_y;
}
public int getX() {
return (int)position_x;
}
public int getY() {
return (int)position_y;
}
public int getSize() {
return size;
}
}
Mithilfe von einem Abschusswinkel und einer Abschussgeschwindigkeit werden die beiden Vektoren der Bewegung berechnet:
Code:
double s = ?; //Anfangsgeschwindigkeit
double w =?; //Abschusswinkel
//Berechnet die Kräfte in x und y Richtung
double sx=Math.sin(Math.toRadians(w))*s;
double sy=-Math.cos(Math.toRadians(w))*s;
Mein Problem ist jetzt folgendes:
Ich habe einen Anfangspunkt A(x|y) und einen Zielpunkt Z(x|y).
Wie berechne ich jetzt die Anfangsgeschwindigkeit und den Winkel, sodass die Kugel bei A losfliegt und Punkt Z auf der Flugbahn liegt?