AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Gravitation Erde-Asteroid
Thema durchsuchen
Ansicht
Themen-Optionen

Gravitation Erde-Asteroid

Ein Thema von vsilverlord · begonnen am 25. Mär 2008 · letzter Beitrag vom 26. Mär 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von vsilverlord
vsilverlord
Registriert seit: 7. Jan 2008
Guten Tag. 8)
Ich bin noch nicht so erfahren im Programmieren, trotzdem habe ich mich mal an das Problem mit der Gravitation von Erde zu einem Asteroiden gemacht.
Das Programm funktioniert auch schon ganz gut, man kann viele verschiedenen Parameter einstellen und sogar per Mausklick die Erde bzw. Den Asteroiden verschieben.
Das einzige was mich stört, ist dass das die Umsetzung hässlich ist und ich keine Ahnung habe, wie ich das mit einer netten Graphic machen könnte. Der blöde Asteroid will auch nie um die Erde kreisen oder so. Anbei ist nur die exe und die 2 Bilder, wenn ihr auch noch den Quelltext wollt müsst ihrs sagen, der ist halt sehr umständlich.
Von der physikalischen Umsetzung habe ich es so gemacht, dass ich die Kraft einfach in eine senkrecht und in eine waagrecht Kraft aufgeteilt habe und danach die Geschwindigkeit
ausrechne und so das Ding verschiebe.
Ich hoffe ihr könnt mir helfen und Tipps geben.

ps: wenn der asteroid auf die Erde trifft gibts en bug
Angehängte Dateien
Dateityp: rar gravitation_135.rar (271,1 KB, 77x aufgerufen)
 
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#21
  Alt 26. Mär 2008, 15:56
Hi ich hab auch mal so was entwickelt und das in ein Spiel verpackt.

Ist auch ähnlich (nur das es grafisch besser ist und Spaß macht ^^)


EDIT: Ich habe das auch vollkommen ohne sin u.a. realisiert und es funktioniert PRIMA

MFG

Björn
Angehängte Dateien
Dateityp: zip battleship-wars_122.zip (362,7 KB, 19x aufgerufen)
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#22
  Alt 26. Mär 2008, 16:13
Zitat von vsilverlord:
@ Inherited: Wie soll das denn sonst funktionieren ohne cos und sin?
Ich habs mit F:=G*m1*m2/r² und den Weg mit V:=v+f/m2 gerechnet. (m1 kürzt sich weg. )
Wieso ohne? Du brauchst zumindest die Verhältnisse. Sieh dir einfach mal den Quelltext an.

@olee: Das geht völlig am Thema vorbei. Das hier ist kein Seht-mich-an-ich-kann-das-auch-Thread, sondern hier geht es um die Berechnung. Und solange du nicht den Quelltext mitlieferst gehört dein Beitrag mit Sicherheit in erstere Kategorie.
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

 
RAD-Studio 2009 Arc
 
#23
  Alt 26. Mär 2008, 16:36
@ inheroted: So wie ich das sehe, sind das keine Verhältnisse bei dieser Situation. Mit Verhältnissen funktioniert es zwar, aber es ist nicht physikalisch korreckt.
Probier doch zb. mal die Hangabtriebskraft ohne Trigonometrie auszurechnen, oder die Kraft bei Flaschenzügen. Das ist nunmal immer ein Dreieck, und bei Dreiecken können die anderen Seiten ja auch nicht durch Verhältnisse ausgerechnet werden, sondern eben durch sinus und cosinus. 8)
ich hoffe das stimmt jetzt so, aber eigentlich wollte ich ja wissen wie ich mein Programm verbessern kann.
Volker
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#24
  Alt 26. Mär 2008, 16:42
Oh stimmt das hatte ich ganz vergessen...

{an die Stirn schlag}

Die bei jedem Rendern aufgerufene Move-Methode des sich bewegenden Objkektes:

Delphi-Quellcode:
  for i := 0 to high(Planets) do
  begin
    XD := XD + Grav(Planets[i].X-X, Planets[i].X-X, Planets[i].Y-Y, Planets[i].GravF);
    YD := YD + Grav(Planets[i].Y-Y, Planets[i].X-X, Planets[i].Y-Y, Planets[i].GravF);
  end;
  X := X + XD;
  Y := Y + YD;

Die Grav-Methode:

Delphi-Quellcode:
function Grav(CalcDist,DistX,DistY,GravF: Double): Double;
begin
  Result := (CalcDist) / ((sqr(DistX)+sqr(DistY))/GravF);
end;

Diese Formel (natürlich ein wenig an Delphi angepasst^^) habe ich auch aus einem Physikbuch entnommen und stimmt.
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#25
  Alt 26. Mär 2008, 17:03
@olee: und was ist GravF? Wie überträgst du die Kraft auf die einzelnen Koordinaten (x,y)?
@vsilverload: Das ist mir klar, schau dir meinen Sourcecode an und du wirst sehen dass ich es anders mache.
Nikolai Wyderka
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:21 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