![]() |
Schräger Wurf in Delphi 6
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Delphiler,
ich habe mit meinem Teamkollegen für die Schule ein Programm in Delphi geschrieben das einen Schrägen Wurf berechnet und in ein Koordinatensystem einzeichnet. Anbei ist eine Dokumentation mit allen erklärungen und der Quelltext mit Kommentaren, sowie allen erläuterungen. Ich dachte mir das es ein schönes Beispiel sei, was man zum Thema Grafiken in Delphi hier hereinstellen könnte. Ich habe von den Benutzern hier auch einige Tips bekommen, und wollte mal das Resultat als danke hier hereinstellen. :dp: Ich hoffe das man hier auch einfach etwas hochladen darf. Sollte das nicht der Fall sein, bitte ich darum, den Thread einfach zu löschen. Vielen Dank nochmal an alle DP´ler und ich grüße GariZZo, nailor, Schwabix, Wheelie, alcaeus, dizzy und last but not least,... den Rest! :zwinker: cu GaKo |
Re: Schräger Wurf in Delphi 6
Hallo und herzlich willkommen in der DP ;)
Klar, darfst du hier was hochladen, dafür ist ja diese Funktion da ;). Doch ist das meiner Meinung nach der falsche Ort. Die Sparte OpenSource ist da doch eigentlich geeigneter, meinst du nicht? :zwinker: |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Multimedia" nach "Open-Source" verschoben.
|
Re: Schräger Wurf in Delphi 6
Hi,
Gruß Stephan :dance: |
Re: Schräger Wurf in Delphi 6
Da ich alle Anregungen nicht sofort inbauen kann sage ich erstmal danke für die Anregung und behebe die Fehler im nu...
Eine Sache noch... wie binde ich *.dd Dateien beim Compilieren mit in das Programm ein? ich habe mir Schon gedacht das diese Fehler auftreten und hier nach einer Lösung gesucht, bin allerdings nicht fündig geworden. :wiejetzt: Bei Antwort wird auch dieser Fehler behoben. cu in 5 min |
Re: Schräger Wurf in Delphi 6
Warum ist denn da die CLX Ubnit QGraphics drinne?
Delphi-Quellcode:
Dann geht's.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math{, QGraphics}; "Abwurfgeschwindigkeit in N". :gruebel: 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. :shock: Zitat:
Und irgendwie vermisse ich so etwas die strukturierte Programmierung. Wenn ich so was sehe:
Delphi-Quellcode:
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.
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;
Delphi-Quellcode:
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.
procedure TForm1.btn_beendenClick(Sender: TObject);
begin Application.Terminate(); //Beenden des Programms end; 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. ;) |
Re: Schräger Wurf in Delphi 6
Liste der Anhänge anzeigen (Anzahl: 1)
Also die Verbesserungen sind glaube ich nun alle aus dem Weg geräumt.
Ich habe die Struktogramme als *.jpg Dateien in den Bilderordner gepackt und in den Ordner für Struktogramme das Proggie mit dem man diese zeichnen kann. Ich habe das Project neu Compiliert nachdem ich die QGraphics rausgenaommen habe. N heist Newton und ist eine Geschwindigkeit nur in sofern, und da gebe ich dir recht, als das N sich aus kg * m/s (kilogramm mal meter pro sekunde) zusammensetzt. Hoffe Ihr findet nichtmehr allzuviele Fehler...=) cu GaKo P.S.: Das mit dem Parabel nach minimieren weg, habe ich auch gemerkt, mir aber nicht zu helfen gewusst, wollen nur hoffen das der Lehrer nicht merkt. :mrgreen: |
Re: Schräger Wurf in Delphi 6
Dazu müsste im OnPaint gezeichnet werden. Oder ihr malt in einer PictureBox. Die kann sich alleine merken, wie sie aussieht.
|
Re: Schräger Wurf in Delphi 6
Ja Michi,
du hast ja recht. :cry: Mein Problem: Ich weiß nicht wie und mein Lehrer ist nicht bereit uns sowas gefügig zu machen. Meine Lösung: Bitte erkläre es mir...hab irgendwie kein Hanbuch zur Hand =) :stupid: :zwinker: :stupid: Der Maßstab kann in die Vorgesehenen Felder eingegeben werden und wenn du Ihn vergrößerst, dann wird dir der abwurfpunkt auch Angezeigt. Den Quelltext hätte man wirklich besser kommentieren können, auch da bist du im Recht!!!! Und bevor ich es vergesse, bei mir sieht der Quelltext in Delphi sehr schön geordnet aus, immer mit zwei Tabs von Schachtel zu Schachtel. *verdammtschrei* Das Ding ist echt nicht so gut was? Ja nun, was solls, abgegeben ist das schon... beim nächsten mal weiß ich es besser...!!! cu GaKo P.S.: Der Maßstab wird mit in die berechnung der Punkte für Y einbezogen, weil ja X sozusagen eine Konstante darstellt. |
Re: Schräger Wurf in Delphi 6
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz