AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gasteilchen-Simulation

Ein Thema von Pungex · begonnen am 27. Jan 2008 · letzter Beitrag vom 25. Mär 2008
 
mr.winkle

Registriert seit: 25. Mai 2006
98 Beiträge
 
Delphi 7 Personal
 
#16

Re: Gasteilchen-Simulation

  Alt 16. Feb 2008, 16:27
Hi Pungex,
ich bin der Typ mit Gasteilchen3D

Zitat von shmia:
Delphi-Quellcode:
function Kollision(A, B : TPoint; Squaredist:integer):boolean;
var
   x,y : integer;
begin
  x := A.x-B.x;
  y := A.x-B.x;
  result := ((x*x)+(y*y) <= Squaredist);
end;
Naja, bei y sollte man schon die Y-Koordinaten der Punkte voneinander subtrahieren, sonst wird das nichts
y:= A.Y-B.Y; Ich mach das immer mit folgender Funktion:
Delphi-Quellcode:
function abstand(a,b:tpoint):real;
begin
  result:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;

//Abfrage
if abstand(punkta,punktb)<=radiusa+radiusb then kollision;
Allerdings reicht das alleine für die Abprallberechnungen von Teilchen nicht aus. Deshalb hab ich mal meine absoluten Anfänge angehängt. Ich bin mir ziemlich sicher das du das gebrauchen kannst

Meine Stossprozedur sieht so aus:
Delphi-Quellcode:
procedure tForm1.stoss(var b1,b2:tBall);
var M1,M2,delvx,delvy,dmx,dmy,dvx,dvy:single;
begin
  M1:=b1.masse;
  M2:=b2.masse;
  dmx:=b2.x-b1.x;
  dmy:=b2.y-b1.y;
  delvx:=b2.vx-b1.vx;
  delvy:=b2.vy-b1.vy;
  dvx:=2*M2*dmx*(dmx*delvx+dmy*delvy)/((SQR(dmx)+SQR(dmy))*(M1+M2));
  dvy:=2*M2*dmy*(dmx*delvx+dmy*delvy)/((SQR(dmx)+SQR(dmy))*(M1+M2));
  b1.vx:=b1.vx+dvx;
  b1.vy:=b1.vy+dvy;
  b2.vx:=b2.vx-(M1/M2)*dvx;
  b2.vy:=b2.vy-(M1/M2)*dvy;
  bewegeball(b1);
  bewegeball(b2);
end;
Damit werden auch sofort je nach Masse, Winkel und Radius die neuen Geschwindigkeiten und Richtungen angegeben. Allerdings treten noch ein paar Schönheitsfehler auf, die sich aber leicht beheben lassen. Im Anhang findest du eine laufende Simulation und bei Fragen kannst du diese gern an mich stellen.

mfg, mr.winkle
Angehängte Dateien
Dateityp: zip modellgas_355.zip (12,0 KB, 16x aufgerufen)
Dateityp: exe modellgas1_745.exe (402,0 KB, 39x aufgerufen)
  Mit Zitat antworten Zitat
 


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 13:56 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