Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Flugbahn eines Geschosses darstellen (https://www.delphipraxis.net/26087-flugbahn-eines-geschosses-darstellen.html)

devnull 17. Jul 2004 22:16


Flugbahn eines Geschosses darstellen
 
Hi,
weiss jemand, wie ich die Flugbahn eines Geschosses (auf Form) darstellen kann?
Bekannt sind:
* Ausgangskoordinaten
* Zielkoordinaten
* Steigung
Problem: Steigung aus reellem Zahlenbereich...

mfg
devnull

xineohp 17. Jul 2004 22:21

Re: Flugbahn eines Geschosses abfeuern
 
moin,

geht es dir um die Berechnung oder die Darstellung der Flugbahn?

devnull 17. Jul 2004 22:24

Re: Flugbahn eines Geschosses darstellen
 
Die Berechnung ist nicht das Problem, wohl aber die Darstellung...

Ich weis nicht, wie ich ein Bild (oder sowas ähnliches) verschieben soll, da die Steigung ja Kommazahl ist

StefanDP 17. Jul 2004 22:29

Re: Flugbahn eines Geschosses darstellen
 
Zitat:

Zitat von devnull
Die Berechnung ist nicht das Problem, wohl aber die Darstellung...

Ich weis nicht, wie ich ein Bild (oder sowas ähnliches) verschieben soll, da die Steigung ja Kommazahl ist

wie wärs einfach mit runden?

supermuckl 17. Jul 2004 22:29

Re: Flugbahn eines Geschosses darstellen
 
wenn du jeden punkt zeichen willst dann machste das halt mit canvas

wenn du ein objekt verschieben willst dann änderste halt jedes frame die position und stellst es dar..

ich weis halt net was du benutzen willst als darstellung und so weiter.. spezifiziere bitte dein problem

// edit

kommazahlen zu ganzzahlen convertieren geht mit round()

devnull 17. Jul 2004 22:37

Re: Flugbahn eines Geschosses darstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich runde und dabei aber mit Pixeln arbeite, bekomme ich bei größeren Pixelstrecken eine sehr große Abweichung...
Eigentlich ist es doch egal, ob ich ein Image oder ein Pixelkreuz verschiebe?!

supermuckl 17. Jul 2004 22:54

Re: Flugbahn eines Geschosses darstellen
 
du musst für deine berechnungen fließkommazahlen verwenden und NUR für das anzeigen via objekte positionieren runden !

Der_Ventilator 18. Jul 2004 02:28

Re: Flugbahn eines Geschosses darstellen
 
Nötigenfalls multiplizierst du deine Endwerte mit einem Vergrößerungsfaktor und rundest dann.

Nikolas 18. Jul 2004 07:46

Re: Flugbahn eines Geschosses darstellen
 
So könnte es dann Aussehen: Parabel
Delphi-Quellcode:
image1.canvas.MoveTo(0,250); // links unten

 for x:=0 to 500 do// von links bis rechts
 begin
 y:=(x-250)/15;  // Nullstelle nach rechts verschoben und Parabel gedrückt
 y:=power(y,2);
 s:=round(y);
 image1.canvas.LineTo(x,s);
 end;
Und immer dran denken 0/0 ist nicht links unten ( vergess ich bei Schaubildern immer und wunder mich dann warum mein Sinus irgendwie gesiegelt aussieht :mrgreen: )

devnull 18. Jul 2004 10:33

Re: Flugbahn eines Geschosses darstellen
 
Ich hab da mal nen üblen Fehler gemacht: jetzt funkts...


Aufnahme der Ausgangs-, Zielposition in der OnMouseDown...
Delphi-Quellcode:
  Schuss[i].XPos := Ship1.XPos;
  Schuss[i].YPos := Ship1.YPos;
  Schuss[i].XStart := Ship1.XPos;
  Schuss[i].YStart := Ship1.YPos;
  Schuss[i].XZiel := x;
  Schuss[i].YZiel := y;
  // Berechnet Steigung (Steigung : real)
  Schuss[i].Steigung := (Schuss[i].YZiel-Ship1.YPos) / (Schuss[i].XZiel-Ship1.XPos);
Timer: Flugbahn darstellen (lineare Fkt.: y=mx+c)
Delphi-Quellcode:
  Schuss[i].XPos := Schuss[i].XPos + 1; //Nur wenn Ziel rechts des Raumschiffs ist
  Schuss[i].YPos := round(Schuss[i].Steigung*(Schuss[i].XPos-Schuss[i].XStart) + Schuss[i].YStart);

mfg
devnull


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz