Warum ist denn da die
CLX Ubnit QGraphics drinne?
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Math{, QGraphics};
Dann geht's.
"Abwurfgeschwindigkeit in
N".

Ich kenne km/h oder m/sec, aber die Einheit N für die Geschwindigkeit ist mir gänzlich unbekannt.
Noch was: Lasse ich einen Wurf berechnen und verdecke das Programmfenster ist die Linie weg.
Zitat:
Auch die Maßstäbe des Koordinatensystems soll man verändern. Dabei kann man aussuchen ob man nur die Y– oder X- Achse verändert.
Das vermisse ich in deinem Programm irgendwie.
Und irgendwie vermisse ich so etwas die strukturierte Programmierung. Wenn ich so was sehe:
Delphi-Quellcode:
procedure TForm1.btn_berechnenClick(Sender: TObject);
var
i : integer;
begin
einlesen; //Sprung zu der Prozedur, die die Werte einliest
extreme; //Sprung zu der Prozedur, die die extreme des Wurfes errechnet
//-----Berechnung der X und Y Werte
for i := 1 to 441 do
begin
punkte[i, 0] := i; //Werte für x werden gesetzt
punkte[i, 1] := Round(((i * massx) * Tan(alpha) - ((SB * gewicht) / (2 *
sqr(gesch) * sqr(Cos(alpha)))) * sqr(i * massx)) / massy * -1);
//Berechnung der Punkte im Bezug zur Y- Achse
//-----Zeichnet die Parabel als Punkte ein
if (cb_auswahl.ItemIndex = 0) then
begin
with Form1.PaintBox1 do
begin
Canvas.Pixels[i + 30, punkte[i, 1] + 140 - hoehe] := clBlack;
//Zeichnen der Parabel in Punkten
end;
end;
end;
//-----Zeichnet die Parabel als Linie ein
if ((cb_auswahl.ItemIndex = 1) or (cb_auswahl.Text = 'Parabel als Linie')) then
begin
with Form1.PaintBox1 do
begin
for i := 1 to 441 do
begin
Canvas.MoveTo(30, 140 - hoehe);
if (i = 1) then
begin
Canvas.LineTo(i + 31, punkte[i + 1, 1] + 140 - hoehe);
end
else if (i < 441) then
begin
Canvas.MoveTo(punkte[i, 0] + 30, punkte[i, 1] + 140 - hoehe);
//Zeichnen der Parabel als Linie
Canvas.LineTo(i + 31, punkte[i + 1, 1] + 140 - hoehe);
end;
end;
end;
end;
end;
So was kapselt man sauber in Klassen. Eine Klasse für den Wurf, in der die Werte berechnet werden und eine Klasse zum Zeichnen des Koordinatensystems und der Flugbahn.
Delphi-Quellcode:
procedure TForm1.btn_beendenClick(Sender: TObject);
begin
Application.Terminate(); //Beenden des Programms
end;
Ich weiß nicht, ob es immer so sinnvoll ist immer gegen eine Mauer zu fahren, wenn man mit dem Auto anhalten will. Ein einfaches
Close tut es voll und ganz.
Bringt die Tabulatur Reihenfolge mal in die richtige Reihenfolge.
Abwurfhöhe 500 Meter und ich sehe nichts. Entweder diese Werte gar nicht zu lassen oder entsprechend skalieren.
Das Maximieren des Fensters kommt auch nicht so gut.