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 2 von 3     12 3      
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 01:06
ähem, ähem
es geht doch hier nicht um rawsouls projekt, auch wenn's schön ist , sondern um vsilverlords problem

anscheinend ist dein asteroid ein "google-bild", liege ich da richtig?
wenn ja, dann solltest du mal mit paint ganz aussenrum raddieren damit du das image transparent machen kannst.
dann würde das ganze schon besser aussehen.
auch ein blauer bis schwarzer hintergrund wäre nett
außerdem solltest du pausieren bei einem aufschlag, damit wäre der echt seltsame bug nicht mehr schlimm.
dann fände ich es auch noch interessant, wenn die Erde sich auch bewegen könnte dann könnte man mal die
erde-5-meter-näher-an-der-sonne-Theorie testen
zu deiner Anziehungs-Prozedur kann ich auch nix sagen

mfG dajuhsa
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 01:14
Hier ist eine etwas ältere Demo von mir, spannend für dich ist wohl vor allem die uPhysics.pas
Leider hatte ich noch keine Gelegenheit das ordentlich durchzukommentieren, wenn etwas unklar ist, frag bitte einfach.


(Sorry für das Flackern, ist mit Canvas realisiert der Einfachheit halber, die Kollision von Objekten ist auch suboptimal, aber das ist nicht Thema der Demo.)

@dajuhsa: Ab ins Bett, Jungchen
Angehängte Dateien
Dateityp: rar physicstest_117.rar (180,6 KB, 20x aufgerufen)
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 01:57
Hi,

ich hab mal schnell ein OffscreenBitmap dazu gemacht, das flackern war ja nicht zum Aushalten.


Zitat von inherited:
@dajuhsa: Ab ins Bett, Jungchen
Angehängte Dateien
Dateityp: zip physictest_repacked_160.zip (224,4 KB, 29x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 02:03
Danke für den Source!

By the way: Nur, weil er etwas jünger ist, als Ihr, heißt das, dass er kein Nerd sein darf?
Frank Dumont
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#5

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 13:16
@ Jelly: das kann passieren wenn man nicht Stop und reset gedrückt hat.
Warum das so ist weiß ich leider nicht, aber bei mir macht der Asteroid
eigentlich immer das was er soll.
@ 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. )
@rawsoul: ist das mit Canvas gemacht? sieht echt gut aus.
@dajuhsa: Wenn das Programm an sich in Ordnung ist, kann ich den Code vom Aseroiden variabel gestalten, dann wäre es kein Problem andere Planten/Satelitten/Asteroiden einzufügen, und deren Masse / Geschwindigkeit einzustellen. Allerdings sollte da schon vorher das Programm an sich stimmen, weil das wäre schon ein bisschen Arbeit.
Der Code an sich ist ziemlich simpel, man könnte ihn auch theoretisch problemlos für 3 Dimensionen umprogrammieren, bloß das graphisch darzustellen ist bestimmt brutal schwer.
Vorher sollten die bescheurten Ruckler mal weg sein, die der Asteroid manchmal von sich gibt.
weiß sonst noch jemand was
Volker
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 14:02
@rawsoul: Ich hab mir jetzt mal deinen Quelltext untersucht und versucht ihn zu verstehen^^
so wie es aussieht ist das das Herzstück deiner physikalischen Berechnung:
Delphi-Quellcode:
 r := Sqrt(Sqr(P1.posX - P2.posX) + Sqr(P1.posY - P2.posY));
  if 2 * r < P1.size + P2.size then MouseDown(mbLeft, [], Random(ClientWidth), Random(ClientHeight));

  vec := (P1.size * P2.size / r / r) / 50;
  P2.speedX := P2.speedX + (- vec * (P2.posX - P1.posX));
  P2.speedY := P2.speedY + (- vec * (P2.posY - P1.posY));

  P2.posX := P2.posX + P2.speedX;
  P2.posY := P2.posY + P2.speedY;

  SetLength(Pfad, High(Pfad) + 2);
  Pfad[High(Pfad)] := Point(Round(P2.posX), Round(P2.posY));

  if (P2.posX < 0) or (P2.posX > ClientWidth) or (P2.posY < 0) or (P2.posY > ClientHeight)
    then MouseDown(mbLeft, [], Random(ClientWidth), Random(ClientHeight));

  Repaint;
also r ist der radius, die formel m1*m2/r² * k versteh ich auch noch. Aber dann gehts direkt zur Geschwindigkeit, den Schritt versteh ich nicht ganz.
Bei mir ist nämlich noch ein zwischenschritt mit Winkeln drin, der bei dir nicht ist (deins funktioniert trotzdem besser )
so sieht mein Herzstück aus:

Delphi-Quellcode:
Insgesamtkraft:=(Gravitationskonstante*Masserde*masseasteroid)/(entfernung*entfernung);
alpha:=radtodeg(arctan((-Erde.x+Asteroid.x)/(-erde.y+asteroid.y)));
//ausrechnen der Kräfte
Senkrechtkraft:=(sin(degtorad(alpha))*Insgesamtkraft);
Waagrechtkraft:=(cos(degtorad(alpha))*Insgesamtkraft);
//Ausrechnen der Geschwindigkeiten und Verschieben des Bildes
//Senkrecht
Senkrechtgeschwindigkeit:=Senkrechtgeschwindigkeit+Senkrechtkraft/Masseasteroid;
Asteroidenbild.Left:=Asteroidenbild.Left-round(Senkrechtgeschwindigkeit/100);
//Waagrecht
Waagrechtgeschwindigkeit:=Waagrechtgeschwindigkeit+Waagrechtkraft/masseasteroid;
Asteroidenbild.Top:=Asteroidenbild.Top+round(Waagrechtgeschwindigkeit/100);
ich hoffe ihr könnt mir helfen
Volker
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 15:44
Ein Winkel ist ja nicht mehr, als das Verhältnis von (in diesem Fall) 2 Vektoren, speedX und speedY. In der Physik sind soweit ich weiß immer alle Vektoren unabhängig voneinander behandelbar - daher benötige ich auch keine Winkel, da ich speedX und speedY getrennt berechne.

Aber zur Info: Ich habe in dem Quelltext keinerleit physikalische Formeln angewandt, ich habe die Berechnungen darauf augebaut, dass ich weiß, dass sich 2 Massen gegenseitig im Verhältnis ihrer Masse und abhängig von deren Radius anziehen. Die Berechnung ist also selbst hergeleitet - und wahrscheinlich ziemlich Fehlervoll
Frank Dumont
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 15:50
Zitat von rawsoul:
Aber zur Info: Ich habe in dem Quelltext keinerleit physikalische Formeln angewandt, ich habe die Berechnungen darauf augebaut, dass ich weiß, dass sich 2 Massen gegenseitig im Verhältnis ihrer Masse und abhängig von deren Radius anziehen. Die Berechnung ist also selbst hergeleitet - und wahrscheinlich ziemlich Fehlervoll
Ach - deswegen prallt der Asteroid fast nie auf die Erde und malt so tolle Muster
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 16:00
Ja, wahrscheinlich Nein quatsch - der Asteroid prallt schon ab und an auf die Erde - ist dies aber der Fall, wird er zurückgesetzt und ein neuer gemalt

Ich habe mal bei Wikipedia nachgeschaut, soweit stimmt aber alles, zumindest von der Logik her. Ich habe nur ein, zwei, vielleicht 3 Konstanten zu viel drin Diese werden aber nur zur adjustierung der Geschwindigkeit genutzt, damit das ganze nicht zu schnell / zu langsam von statten läuft.

vsilverlord: mir ist gerade aufgefallen, dass dein Asteroid immer direkt in Richtung Erde fliegt. Hat er überhaupt eine Anfangsgeschwindigkeit? Diese müsstest du natürlich haben!
Frank Dumont
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#10

Re: Gravitation Erde-Asteroid

  Alt 26. Mär 2008, 16:07
die Anfangsgeschwindigkeit kann man einstellen, genauso wie die Massen! oben links!
Volker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 04:51 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 by Thomas Breitkreuz