AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Timer + Zeichnen(+Bewegen) im Koordinatensystem - WIE?
Thema durchsuchen
Ansicht
Themen-Optionen

Timer + Zeichnen(+Bewegen) im Koordinatensystem - WIE?

Ein Thema von rajuneon · begonnen am 24. Feb 2009 · letzter Beitrag vom 24. Feb 2009
Antwort Antwort
rajuneon
(Gast)

n/a Beiträge
 
#1

Re: Timer + Zeichnen(+Bewegen) im Koordinatensystem - WIE?

  Alt 24. Feb 2009, 18:34
achso...naja, das war wohl fast zu viel der mühe =) ich hab ja die formel schon...soll ja ein wurf dargestellt werden.
Was du mir hier vorgeschlagen hast, ist ja ein Canvas...aber ich meine, irgendwo gelesen zu haben, dass das wohl irgendwie flimmert. Meinst du, ich kann das getrost verwenden?


Hier mal ein Teil dessen, was ich bis jetzt habe:

Delphi-Quellcode:
var // Deklaration aller benötigten Variablen
  Form1: TForm1;

  h0 : real; // Abwurfhöhe
  v0 : real; // Abwurfgeschwindigkeit
  winkel0, winkel0bogen : real; // Abwurfwinkel (+Bogenmaß)
  m : real; // Masse
  g : real; // Fallbeschleunigung
  x,y : real; // x,y-Koordinate
  t : real; // Zeit
  Dauer : real; // Wurfdauer
  W : real; // Wurfweite
  hmax : real; // maximale Wurfhöhe
  v : real; // aktuelle Geschwindigkeit
  vx,vy : real; // aktuelle Geschwindigkeit in x- und y-Richtung
  winkel, winkelbogen : real; // aktueller Winkel (+Bogenmaß)
  a : real; // Beschleunigung
  F : real; // Kraft (zum Erdmittelpunkt)
  Ekin,Epot,Eges : real; // kinetische, potentielle und gesamte Energie

  implementation

{$R *.dfm}

procedure TForm1.PlayClick(Sender: TObject); // PLAY-Taste gedrückt
begin

h0 := StrToFloat(Wurfhoehe.Text);
v0 := StrToFloat(Wurfgeschwindigkeit.Text);
winkel0 := StrToFloat(Wurfwinkel.Text);
winkel0bogen := DegToRad(winkel0); // Abwurfwinkel ins Bogenmaß bringen
m := StrToFloat(Masse.Text);
case Fallbeschleunigung.ItemIndex of // Auswahl eines Planeten bzw. Eingabe einer Wunsch-Fallbeschleunigung
  0: g := 9.81; // Erde
  1: g := 1.62; // Mond
  2: g := 3.69; // Mars
  3: g := 3.7; // Merkur
  4: g := 8.87; // Venus
  5: g := 23.13; // Jupiter
  6: g := 8.96; // Saturn
  7: g := 8.69; // Uranus
  8: g := 11; // Neptun
else g := StrToFloat(Fallbeschleunigung.Text); // wenn g nicht aus der Liste gewählt wird
  end;
// einlesen der variablen Werte

Dauer := ((v0*sin(winkel0bogen))+sqrt((sqr(v0)*sqr(sin(winkel0bogen)))+(2*g*h0)))/g;
  Wurfdauer.Caption := FloatToStr(Dauer);
W := (v0*cos(winkel0bogen)*((v0*sin(winkel0bogen))+sqrt((sqr(v0)*sqr(sin(winkel0bogen)))+(2*g*h0))))/g;
  Wurfweite.Caption := FloatToStr(W);
hmax := h0+((sqr(v0)*sqr(sin(winkel0bogen)))/(2*g));
  Maximalhoehe.Caption := FloatToStr(hmax);
F := m*g;
  Kraft.Caption := FloatToStr(F);
x := v0*t*cos(winkel0bogen);
  KoordinateX.Caption := FloatToStr(x);
y := h0+(v0*t*sin(winkel0bogen))-(g*sqr(t)/2);
  KoordinateY.Caption := FloatToStr(y);
v := sqrt(sqr(v0)-(2*v0*g*t*sin(winkel0bogen))+(sqr(g)*sqr(t)));
  Geschwindigkeit.Caption := FloatToStr(v);
vx := v0*cos(winkel0bogen);
  GeschwindigkeitX.Caption := FloatToStr(vx);
vy := (v0*sin(winkel0bogen))-(g*t));
  GeschwindigkeitY.Caption := FloatToStr(vy);
Ekin := (m/2)*(sqr(v0)-(2*v0*g*t*sin(winkel0bogen))+(sqr(g)*sqr(t)));
  Ekinetisch.Caption := FloatToStr(Ekin);
Epot := m*g(h0+(v0*t*sin(winkel0bogen))-(g*sqr(t)/2));
  Epotentiell.Caption := FloatToStr(Epot);
Eges := (m*sqr(v0)/2)+(m*g*h0);
  Egesamt.Caption := FloatToStr(Eges);
Noch eine Frage, wo du schon dabei bist

- kann ich die Simulation irgendwie pausieren und wiedder fortfahren lassen und vllt. auch mit einer progressbar darstellen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 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