hier noch der quellcode meines applets, vielleicht hilf das weiter:
/* Schiefermagnus.java */
import java.awt.event.*;
import java.applet.*;
import java.awt.*;
public class Schiefermagnus
extends Applet
implements ActionListener, AdjustmentListener
{
// hier werden alle Elemente der Formel und der Datei selber definiert
int height = 640; // Fenstergrösse ( aus der HTML-Datei)
int width = 850;
int ground = height - 200; // Der Boden
int xstart = 45; // Startwerte
int ystart = ground; // normales Koordinatensystem nicht das welches für Java gewöhnlich ist
int xkreis = 40;
int ykreis = 435;
double v = 14.5; // Geschwindigkeit
double winkel = 45; // Standartwinkel
double t = 0.01; // Zeitschritt (Genauigkeit der Darstellung)
int zz = 10;
int faktor = 20; // 1 Meter entspricht [faktor] Pixel
int versuch = 1;
int xziel = 600;
int yziel = 300;
int abstand = 0;
int s = 581;
int u = 650;
double cw = 0.000286;
int höhe = 0;
int r = 0;
double ra = 0;
int r5 = 11;
double r1 = 0.11;//Fussball
double r2 = 0.0213;//Golf
int r2a = 2;
double r3 = 0.1225; //Basketball
int r3a = 12;
double r41 = 0.0939;//Handball 3er
int r41a = 9;
double l = 0;
double l1 = 0.3;
double l2 = 0.4;
double l3 = 0.356;
double l4 = 0.42;
int q = 5; //Faktor für die Vektoren - siehe bei Vektordefinitionen
double beta = 0;
double gamma = 0;
double beta1 = 0.0319052; // Widerstandswert Fussball
double beta2 = 0.0240044; //Golf
double beta3 = 0.0791368; //Basketball
double beta4 = 0.04644984; //Handball 3er
double o = 0.55;
double masse = 0;
double masse1 = 0.43; //Fussball
double masse2 = 0.04593; //Golf
double masse3 = 0.625; //Basketball
double masse4a = 0.45; // Handball 3er
int maxabstand = 0; // Ausrechnen der Maxweite
int maxwinkel = 0;
double phi = 1.012;
double fa = 5;
// Globale Variablen für grafische Elemente
Button knopf = new Button("Start"); // Knopf für den Schuss
Button bt_reset = new Button("Reset");
Button stop = new Button("Stop");
Button weiter = new Button("Fortfahren");
Label daten = new Label();
Label lb_v = new Label("Geschwindigkeit in [m/s]"); // Anzeige für die Geschwindigkeit
Label lb_winkel = new Label("Winkel in Grad [°]");
Label lb_masse = new Label("Masse in [kg]");
Label lb_r = new Label("Durchmesser");
Scrollbar scrollwinkel = new Scrollbar(Scrollbar.HORIZONTAL, (int) winkel, 20, 0, 110); // für den Winkel zum scrollen
Scrollbar scrollv = new Scrollbar(Scrollbar.HORIZONTAL, (int) v, 20, 0, 45);
Checkbox widerstand = new Checkbox("Luftwiderstand", true); // Widerstand , eine Box in der man einen Haken hinterlässt und die so aktiviert wird
Checkbox auftrieb = new Checkbox("Magnus",false);
Checkbox Fl;
Checkbox Fres;
Checkbox geschwindigkeit;
Checkbox beschleunigung;
Checkbox Fg;
Checkbox komponent;
Checkbox Fa;
CheckboxGroup massen;
Checkbox mass;
Checkbox mass1;
Checkbox mass2;
Checkbox mass3;
// Parabelwerte
double fx, fy, fax, fay, fg, beta8, beta9;
double fallbeschl = 9.81; // Fallbeschleunigung
double xold, yold;
double x, y, vx, vy, ax, ay;
double voben, vunten;
int farbe = 0;
Polygon fluglinie = new Polygon(); // Fluglinie
Polygon gewichtskraft = new Polygon();
boolean reset;
Thread SMThread;
// Eigentliche Parabelfunktion
public void draw()
{
SMThread = new Thread()
{
public void run()
{
vx = v * Math.cos(winkel / 180 * Math.PI); // x-Abschnitt der Parabel
vy = -v * Math.sin(winkel / 180 * Math.PI); // y-Abschnitt der Parabel
x = xstart; // in welchen Punkten es starten soll
y = ystart;
fg = masse * fallbeschl;
fax = fa * Math.cos(90-winkel / 180 * Math.PI);
fay = fa * Math.sin(90-winkel / 180 * Math.PI);
fluglinie = new Polygon(); // Fluglinie zurüecksetzen
gewichtskraft = new Polygon();
do
{ // der Befehl do{} lässt die Parabel erscheinen , aber ohne Knopfdruck läuft nix ... siehe weiter unten!
beta8 = beta * fax;
beta9 = beta / fay;
xold = x;
yold = y;
fx = -beta * (Math.sqrt(vx * vx + vy * vy) * vx); // neue Kraft in x-Richtung (inkl. Luftwiderstand)
fy = gamma * (Math.sqrt(vx * vx + vy * vy) * vy) - fg; // neue Kraft in y-Richtung
ax = fx / masse; // neue x-Beschl.
ay = fy / masse; // neue y-Beschl.
vx = vx + ax * t ; // neue x-Geschw.
vy = vy - ay * t ; // neue y-Geschw.
x = x + vx * t; // neue x-Koordinate
y = y + vy * t; // neue y-Koordinate
höhe = (int) (Math.pow(v, 2) * Math.pow(Math.sin(winkel / 180 * Math.PI), 2) / (2 * fallbeschl) * faktor);
fluglinie.addPoint((int) Math.round((x - xstart) * faktor + xstart), (int) Math.round((y - ystart) * faktor + ystart));
gewichtskraft.addPoint((int) Math.round((x - xstart) * faktor + xstart), (int) Math.round((y - ystart) * faktor + ystart));
repaint();
try
{
sleep(zz);
}
catch (InterruptedException e)
{
}
if(reset)break;
}
while ((y - ystart) * faktor + ystart <= ystart);
abstand = (int) ((x - xstart) * faktor);
update();
if (abstand == s)
{ // Benutzer hat Tor getroffen
lb_v.setText("Geschwindigkeit in [m/s]");
}
}
};
SMThread.start();
}
// Initialisierungsfunktion wird beim Applet-Start aufgerufen
public void init()
{ // für das Applet : Hintergrundfarbe, wo es Bilder herholen soll, die eigentlichen Scrolls(also ihre Koordinaten) usw.
setLayout(null);
setSize(width, height);
setBackground(new Color(102, 204, 255));
geschwindigkeit = new Checkbox("Geschwindigkeit",false);
Fres = new Checkbox("resultierende Kraft",false);
beschleunigung = new Checkbox("Beschleunigung",false);
Fl = new Checkbox("Luftwiderstandskraft",false);
Fg = new Checkbox("Gewichtskraft",false);
komponent = new Checkbox("Vektorkomponente",false);
Fa = new Checkbox("Auftriebskraft",false);
massen = new CheckboxGroup();
mass = new Checkbox("Fussball",massen,true);
mass1 = new Checkbox("Golfball",massen,false);
mass2 = new Checkbox("Basketball",massen,false);
mass3 = new Checkbox("Handball,3er",massen,false);
daten.setBounds(70, ground + 10, 900, 30);
lb_winkel.setBounds(200, ground + 70, 150, 20);
lb_v.setBounds(200, ground + 40, 200, 20);
knopf.setBounds(50, 20, 100, 25); // Positionen und Grössen der Elemente
bt_reset.setBounds(180, 20, 100, 25);
stop.setBounds(310,20,100,25);
weiter.setBounds(440,20,100,25);
scrollwinkel.setBounds(70, ground + 70, 120, 20);
scrollv.setBounds(70, ground + 40, 120, 20);
widerstand.setBounds(580,ground + 40,100,20);
auftrieb.setBounds(580,ground + 70,100,20);
geschwindigkeit.setBounds(260,ground + 110,150,20);
Fres.setBounds(60,ground + 110,200,20);
beschleunigung.setBounds(260,ground + 140,150,20);
Fl.setBounds(60,ground + 140,150,20);
Fg.setBounds(60,ground + 170,150,20);
komponent.setBounds(260,ground+170,150,20);
Fa.setBounds(460,ground + 110, 150,20);
mass.setBounds(350,ground + 40,100,20);
mass1.setBounds(350,ground + 70,100,20);
mass2.setBounds(450,ground + 40,100,20);
mass3.setBounds(450,ground + 70,100,20);
add(daten); add(scrollwinkel);
add(scrollv); add(knopf);
add(bt_reset); add(stop);
add(weiter); add(widerstand);
add(auftrieb); add(geschwindigkeit);
add(Fres); add(beschleunigung);
add(Fl); add(Fg);
add(komponent); add(mass);
add(mass1); add(mass2);
add(mass3); add(lb_winkel);
add(lb_v); add(lb_masse);
add(Fa);
knopf.addActionListener(this); // zu überwachende Elemente
bt_reset.addActionListener(this);
stop.addActionListener(this);
weiter.addActionListener(this);
scrollwinkel.addAdjustmentListener(this);
scrollv.addAdjustmentListener(this);
update();
}
// Überwacht die Buttons auf Clicks
public void actionPerformed(ActionEvent e)
{
if (mass.getState())
{
masse = masse1;
beta = beta1;
gamma = beta1;
r = r5;
}
if (mass1.getState())
{
masse = masse2;
beta = beta2;
gamma = beta2;
r = r2a;
}
if (mass2.getState())
{
masse = masse3;
beta = beta3;
gamma = beta3;
r = r3a;
}
if (mass3.getState())
{
masse = masse4a;
beta = beta4;
gamma = beta4;
r = r41a;
}
if(auftrieb.getState()){
beta = beta8;
gamma = beta9;
}
if (!widerstand.getState())
{
beta = 0;
gamma = 0;
}
if (e.getSource() == knopf)
{
reset = false;
draw();
}
if (e.getSource() == bt_reset)
{
reset = true;
reset();
}
if (e.getSource() == stop)
{
reset = false;
SMThread.suspend();
}
if (e.getSource() == weiter)
{
reset = false;
SMThread.resume();
}}
// Überwacht die Scrollbars auf Änderungen
public void adjustmentValueChanged(AdjustmentEvent e)
{ // für das Bewegen der Scrolls wichtig, damit sich die Werte verändern können
winkel = scrollwinkel.getValue();
v = scrollv.getValue();
update();
}
// Zeichnungsfunktion: Wird immer wieder aufgerufen
public void paint(Graphics g)
{
g.setColor(Color.black);
g.drawLine(0, ground, width, ground);
g.setColor(Color.gray);// Farben des Koordinatensystem
g.drawLine(0, ystart, width, ystart); // Koordinatenachsen zeichnen
g.drawLine(xstart, 0, xstart, height - 10);
int arX = (int)Math.round((x - xstart) * faktor + xstart);
int arY = (int)Math.round((y - ystart) * faktor + ystart);
//Beschleunigungsvektorenkoordinaten
int[] Xpunkteax = {arX,arX+(int)(ax*q+5),arX+(int)(ax*q+5),arX+(int)(ax*q),arX+(int)(ax*q+5),arX+(int)(ax*q+5)};
int[] Ypunkteax = {arY,arY,arY+5,arY,arY-5,arY};
int[] Xpunkteay = {arX,arX,arX+5,arX,arX-5,arX};
int[] Ypunkteay = {arY,arY -(int)(ay*q+5),arY-(int)(ay*q+5),arY-(int)(ay*q),arY-(int)(ay*q+5),arY-(int)(ay*q+5)};
int[] Xpunktea = {arX,arX +(int)(ax*q+3),arX+(int)(ax*q+6),arX+(int)(ax*q),arX+(int)(ax*q),arX +(int)(ax*q+3)};
int[] Ypunktea = {arY,arY -(int)(ay*q+3),arY -(int)(ay*q),arY -(int)(ay*q),arY -(int)(ay*q+6),arY -(int)(ay*q+3)};
//Kräftevektorenkoordinaten
int[] Xpunktefg = {arX,arX,arX-5,arX,arX+5,arX};//Gewichtkraft-Vektor
int[] Ypunktefg = {arY,arY +(int)(fg*q-5),arY+(int)(fg*q-5),arY+(int)(fg*q),arY+(int)(fg*q-5),arY+(int)(fg*q-5)};
int[] Xpunktefax = {arX,arX -(int)(fax*q+5),arX -(int)(fax*q),arX -(int)(fax*q),arX -(int)(fax*q),arX -(int)(fax*q+5)};
int[] Ypunktefax = {arY,arY,arY-5,arY,arY+5,arY};
//Luftwiderstandsvektor
int[] Xpunktefl = {arX,arX -(int)(vx*q-3),arX -(int)(vx*q-6),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q-3)};
int[] Ypunktefl = {arY,arY +(int)(-vy*q+3),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q+6),arY +(int)(-vy*q+3)};
int[] Ypunktefl2 = {arY,arY +(int)(-vy*q-3),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q-6),arY +(int)(-vy*q-3)};
int[] Xpunkteflx = {arX,arX -(int)(vx*q+5),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q+5)};
int[] Ypunkteflx = {arY,arY,arY-5,arY,arY+5,arY};
int[] Xpunktefly = {arX,arX,arX-5,arX,arX+5,arX};
int[] Ypunktefly = {arY,arY +(int)(-vy*q-5),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q-5)};
int[] Ypunktefly2 = {arY,arY +(int)(-vy*q+5),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q),arY +(int)(-vy*q+5)};
//resultierender Kraftvektor
int[] Xpunktefres = {arX,arX -(int)(vx*q-3),arX -(int)(vx*q-6),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q-3)};
int[] Ypunktefres = {arY,arY +(int)(fg*q-5)+(int)(-vy*q-3),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q-6),arY +(int)(fg*q-5)+(int)(-vy*q-3)};
int[] Ypunktefres2 = {arY,arY +(int)(fg*q-5)+(int)(-vy*q+3),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q+6),arY +(int)(fg*q-5)+(int)(-vy*q+3)};
int[] Xpunktefresx = {arX,arX -(int)(vx*q+5),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q),arX -(int)(vx*q+5)};
int[] Ypunktefresx = {arY,arY,arY-5,arY,arY+5,arY};
int[] Xpunktefresy = {arX,arX,arX-5,arX,arX+5,arX};
int[] Ypunktefresy = {arY,arY +(int)(fg*q-5)+(int)(-vy*q-5),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q-5)};
int[] Ypunktefresy2 = {arY,arY +(int)(fg*q-5)+(int)(-vy*q+5),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q),arY +(int)(fg*q-5)+(int)(-vy*q+5)};
//Geschwindigkeitsvektorenkoordinaten
int[] Xpunktevx = {arX,arX +(int)(vx*q-5),arX + (int)(vx*q-5),arX +(int)(vx*q),arX +(int)(vx*q-5),arX +(int)(vx*q-5)};
int[] Ypunktevx = {arY,arY,arY+5,arY,arY-5,arY};
int[] Xpunktevy = {arX,arX,arX+5,arX,arX-5,arX};
int[] Ypunktevy = {arY,arY -(int)(-vy*q+5),arY -(int)(-vy*q+5),arY -(int)(-vy*q),arY -(int)(-vy*q+5),arY -(int)(-vy*q+5)};
int[] Ypunktevy2 = {arY,arY -(int)(-vy*q-5),arY -(int)(-vy*q-5),arY -(int)(-vy*q),arY -(int)(-vy*q-5),arY -(int)(-vy*q-5)};
int[] Xpunktev = {arX,arX +(int)(vx*q-3),arX +(int)(vx*q-6),arX +(int)(vx*q),arX +(int)(vx*q),arX +(int)(vx*q-3)};
int[] Ypunktev = {arY,arY -(int)(-vy*q+3),arY -(int)(-vy*q),arY -(int)(-vy*q),arY -(int)(-vy*q+6),arY -(int)(-vy*q+3)};
int[] Ypunktev2 = {arY,arY -(int)(-vy*q-3),arY -(int)(-vy*q),arY -(int)(-vy*q),arY -(int)(-vy*q-6),arY -(int)(-vy*q-3)};
if (!reset){
if (farbe == 0){
g.setColor(Color.darkGray);
farbe = 1;
}
else{
g.setColor(Color.darkGray);
farbe = 0;}
g.drawPolyline(fluglinie.xpoints, fluglinie.ypoints, fluglinie.npoints);
g.fillOval((int) Math.round((xold - xstart) * faktor + xstart - (faktor / 4)), (int) Math.round((yold - ystart) * faktor + ystart - (faktor / 4)), r,r);
}
if (!reset){
if (farbe ==0){
g.setColor(Color.green);
farbe=1;}
else{
g.setColor(Color.green);
farbe = 0;}
if(auftrieb.getState()){
if(Fa.getState()){
if(komponent.getState()){
g.drawPolygon(Xpunktefax, Ypunktefax,6);
g.fillPolygon(Xpunktefax, Ypunktefax,6);}}}
if(Fl.getState()){
if(widerstand.getState()){
if(vy > 0){
g.drawPolygon(Xpunktefl,Ypunktefl,6);
g.fillPolygon(Xpunktefl,Ypunktefl,6);
g.drawString("Fl",arX -(int)(vx*q-9),arY +(int)(-vy*q+3));
if(komponent.getState()){
g.drawPolygon(Xpunktefly,Ypunktefly,6);
g.fillPolygon(Xpunktefly,Ypunktefly,6);
g.drawString("Fly",arX +3,arY +(int)(-vy*q-3));}}
if(vy < 0){
g.drawPolygon(Xpunktefl,Ypunktefl2,6);
g.fillPolygon(Xpunktefl,Ypunktefl2,6);
g.drawString("Fl",arX -(int)(vx*q+11),arY +(int)(-vy*q+3));
if(komponent.getState()){
g.drawPolygon(Xpunktefly,Ypunktefly2,6);
g.fillPolygon(Xpunktefly,Ypunktefly2,6);
g.drawString("Fly",arX +3,arY +(int)(-vy*q-3));}
}
if(komponent.getState()){
g.drawPolygon(Xpunkteflx,Ypunkteflx,6);
g.fillPolygon(Xpunkteflx,Ypunkteflx,6);
g.drawString("Flx",arX -(int)(vx*q+12),arY-5);}
}}
if(Fg.getState()){
g.drawPolygon(Xpunktefg,Ypunktefg,6);
g.fillPolygon(Xpunktefg,Ypunktefg,6);
g.drawString("Fg", arX+ 5,arY+(int)(fg*q+2));}
}
if (!reset){
if (farbe ==0){
g.setColor(Color.blue);
farbe=1;}
else{
g.setColor(Color.blue);
farbe = 0;}
if(geschwindigkeit.getState()){
if(winkel!=90){
if(komponent.getState()){
g.drawPolygon(Xpunktevx,Ypunktevx,6);
g.fillPolygon(Xpunktevx,Ypunktevx,6);
g.drawString("vx",arX+(int)(vx*q+5), arY +3);}
}
if(winkel!=0){
if(vy > 0){
if(komponent.getState()){
g.drawPolygon(Xpunktevy,Ypunktevy,6);
g.fillPolygon(Xpunktevy,Ypunktevy,6);
g.drawString("vy",arX+3,arY -(int)(-vy*q+5));}
g.drawPolygon(Xpunktev,Ypunktev,6);
g.fillPolygon(Xpunktev,Ypunktev,6);
g.drawString("v",arX +(int)(vx*q+4),arY -(int)(-vy*q+4));
} if(vy < 0){
if(komponent.getState()){
g.drawPolygon(Xpunktevy,Ypunktevy2,6);
g.fillPolygon(Xpunktevy,Ypunktevy2,6);
g.drawString("vy",arX+3,arY -(int)(-vy*q+3));}
g.drawPolygon(Xpunktev,Ypunktev2,6);
g.fillPolygon(Xpunktev,Ypunktev2,6);
g.drawString("v",arX +(int)(vx*q+4),arY -(int)(-vy*q+4));
}
}}}
if (!reset){
if (farbe ==0){
g.setColor(Color.orange);
farbe=1;}
else{
g.setColor(Color.orange);
farbe = 0;}
if(beschleunigung.getState()){
if(beta!=0){
if(komponent.getState()) {
g.drawPolygon(Xpunkteax,Ypunkteax,6);
g.fillPolygon(Xpunkteax,Ypunkteax,6);
g.drawString("ax", arX+(int)(ax*q+4),arY-7);}
g.drawPolygon(Xpunktea,Ypunktea,6);
g.fillPolygon(Xpunktea,Ypunktea,6);
g.drawString("a", arX+(int)(ax*q-7),arY-(int)(ay*q-7));
if(komponent.getState()){
g.drawPolygon(Xpunkteay,Ypunkteay,6);
g.fillPolygon(Xpunkteay,Ypunkteay,6);
g.drawString("ay",arX+7, arY-(int)(ay*q+4));}
}if(beta==0){
g.drawPolygon(Xpunkteay,Ypunkteay,6);
g.fillPolygon(Xpunkteay,Ypunkteay,6);
g.drawString("a",arX+7, arY-(int)(ay*q+4));}
}
}
if (!reset){
if (farbe ==0){
g.setColor(Color.red);
farbe=1;}
else{
g.setColor(Color.red);
farbe = 0;}
if(Fres.getState()){
if(widerstand.getState()){
if(komponent.getState()){
g.drawPolygon(Xpunktefresx,Ypunktefresx,6);
g.fillPolygon(Xpunktefresx,Ypunktefresx,6);
g.drawString("Fresx", arX -(int)(vx*q)-37,arY);}
if(vy > 0){
g.drawPolygon(Xpunktefres,Ypunktefres2,6);
g.fillPolygon(Xpunktefres,Ypunktefres2,6);
g.drawString("Fres",arX -(int)(vx*q)-30,arY +(int)(fg*q-5)+(int)(-vy*q)+8);
if(komponent.getState()){
g.drawPolygon(Xpunktefresy,Ypunktefresy,6);
g.fillPolygon(Xpunktefresy,Ypunktefresy,6);
g.drawString("Fresy",arX+10,arY +(int)(fg*q-5)+(int)(-vy*q)+4);}
}
if(vy < 0){
g.drawPolygon(Xpunktefres,Ypunktefres,6);
g.fillPolygon(Xpunktefres,Ypunktefres,6);
g.drawString("Fres",arX -(int)(vx*q)-30,arY +(int)(fg*q-5)+(int)(-vy*q)+8);
if(komponent.getState()){
g.drawPolygon(Xpunktefresy,Ypunktefresy2,6);
g.fillPolygon(Xpunktefresy,Ypunktefresy2,6);
g.drawString("Fresy",arX+10,arY +(int)(fg*q-5)+(int)(-vy*q)+4);}
}
}
if(!widerstand.getState()){
g.drawPolygon(Xpunktefg,Ypunktefg,6);
g.fillPolygon(Xpunktefg,Ypunktefg,6);
g.drawString("Fres", arX+ 5,arY+(int)(fg*q+2));
}
}
}
}
// reset - dazu brauchts keinen Kommentar;
public void reset()
{
abstand = 0;
update();
repaint();
lb_v.setText("Geschwindigkeit in [m/s]");
}
// update - aktualisiert die Daten
public void update()
{
daten.setText (" Winkel: " + (int)winkel + "°" +" "+
" v: " + (int)v + " m/s" +" "+
" vx: " + Math.round( v * Math.cos(winkel/180*Math.PI)) + " m/s" + " "+
" vy: " + Math.round( v * Math.sin(winkel/180*Math.PI)) + " m/s" + " "+
" Distanz: " + abstand + "m" + " " +
" Höhe:" + höhe + "m" + " "+
" Gewichtskraft: " + (float)(masse*fallbeschl) + "N"+" " +
" Auftriebskraft:" + (float)(fa) + "N");
}
}