AGB  ·  Datenschutz  ·  Impressum  







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

Simple 2D Physik

Ein Thema von sportkeks · begonnen am 1. Sep 2010 · letzter Beitrag vom 2. Sep 2010
Antwort Antwort
blackfin
(Gast)

n/a Beiträge
 
#1

AW: Simple 2D Physik

  Alt 1. Sep 2010, 10:22
Beschreib doch mal (eventuell mit einer kleinen Skizze), was für eine Kollision für dich wichtig ist und wie sich die Rechtecke bewegen, dann kann man sicher was finden
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Simple 2D Physik

  Alt 1. Sep 2010, 10:32
Eine Skizze wäre echt gut.
Außerdem hab' ich noch ein paar Fragen:
- Wie dürfen sich die Rechtecke bewegen? In einer Ebene müssten sie 3 Freiheitsgrade haben (2 x Translation + 1 x Rotation) - es sei denn sie sind immer an den Achsen orientiert oder sowas.
- Wie sind die Rechtecke in deinem Programm gespeichert? Als Klassen? records?
  Mit Zitat antworten Zitat
sportkeks

Registriert seit: 29. Apr 2009
73 Beiträge
 
#3

AW: Simple 2D Physik

  Alt 1. Sep 2010, 10:41
eine typische beispiel situation wäre in etwa das:

http://spk2.sp.ohost.de/spkskrempel/simplecollison.jpg

objekt 1 steht, objekt 2 bewegt darauf zu und kollidiert, objekt 1 wird etwas nach links gedreht und wird von objekt 2 ein stück mitgeschoben bis beide zum stillstand kommen
(also beide objekte sind frei beweglich keine festen achsen oder so)

das gleiche muss auch noch so funktionieren das objekt 1 statisch ist und objekt 2 praktisch gegen eine wand fährt.

ja das wars eigl. mehr muss die engine gar nicht können

umso einfacher desto besser wäre es

alle objekte sind als klasse in einer Tobjektlist enthalten mit allen informationen die man zur berechnung benötigen wird

Gruß Sportkeks
Now we're taking a break to eat some cake.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#4

AW: Simple 2D Physik

  Alt 1. Sep 2010, 10:50
Wenn wie in deiner Skizze das Rechteck 2 auf 1 aufschlägt, soll 1 dann in deiner Engine gedreht werden (Rechteck kippt) oder nur verschoben?
  Mit Zitat antworten Zitat
sportkeks

Registriert seit: 29. Apr 2009
73 Beiträge
 
#5

AW: Simple 2D Physik

  Alt 1. Sep 2010, 10:55
es wird gedreht (gekippt)
rechteck 2 wird auch etwas von seiner richtung abgebracht
Now we're taking a break to eat some cake.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#6

AW: Simple 2D Physik

  Alt 1. Sep 2010, 11:02
Dann solltest du vielleicht doch lieber ChipMunk oder Newton verwenden
So "simpel" ist das dann gar nicht mehr, da du schon ziemlich viele physikalische Gegebenheiten brauchst:
- Einschlagspunkt, Einschlagsgeschwindigkeit, Kraftvektoren, Masse usw.

Und das ist mit einem kurzen Stück Beispiel-Code definitiv nicht mehr zu demonstrieren / erledigen

Geändert von blackfin ( 1. Sep 2010 um 11:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Simple 2D Physik

  Alt 1. Sep 2010, 11:06
Also zu den einzelnen Punkten:

Kollisionserkennung
Wenn die Zeitintervalle fein genug sind, reicht es zu prüfen ob sich ein Punkt des einen Rechtecks in dem anderen Rechteck befindet und umgekehrt. Ein schwieriger zu verstehendes (aber möglicherweise schneller und/oder sichereres) Verfahren wäre die Minkowski Differenz.

Was dann?
Du musst dann mit Impuls und Drallsatz hantieren, und Energieerhaltung kommt auch noch dazu Das wird dann in der Tat etwas komplizierter. Aber nicht unmöglich
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#8

AW: Simple 2D Physik

  Alt 1. Sep 2010, 11:15
Unmöglich ist gar nix
Aber mit "simpel" hat das an sich nicht mehr viel zu tun.
Meiner Meinung nach ist ChipMunk genau das richtige dafür, und die Schwerkraft kannst du dort auch komplett weglassen.
(Das gilt übrigens für alle Physik-Engines: Die Schwerkraft ist eigentlich nichts anderes als eine permanente Kraft bestimmter Grösse auf alle Objekte in eine vorgegebene Richtung, die man aber auch annullieren kann bzw. erst gar nicht einbauen muss )


Edit:
Folgender Artikel ist für dich als Hintergrundwissen wohl interessant:
http://www.codeproject.com/KB/GDI-pl...Collision.aspx

Aber: Nimm was fertiges. Die Materie einer physikalisch korrekten 2D-Kollisionserkennung ist alles andere als leicht und Engines wie Newton wurden von mehreren Entwicklern auch nicht innerhalb von ein paar Tagen geschrieben.
Physik ist ein klassischer Verwendungszweck für Fremd-Komponenten, das gilt für Hobby-Programmierer noch mehr als für grosse Firmen.
Ich kenne allerdings inzwischen kaum mehr eine Spiele-Firma, die ihre Physik-Engine selbst geschrieben hat (auch für 2D Games, ausser vielleicht ein paar Flash-Games), ganz einfach deswegen, weil die externen Produkte inzwischen ausgereift sind, ziemlich einfach zu implementieren sind und das Selbst-Schreiben einer Physik-Engine zwar nicht unmöglich ist, aber definitiv viel (zu viel?) Zeit in Anspruch nimmt.

Geändert von blackfin ( 1. Sep 2010 um 12:33 Uhr)
  Mit Zitat antworten Zitat
sportkeks

Registriert seit: 29. Apr 2009
73 Beiträge
 
#9

AW: Simple 2D Physik

  Alt 1. Sep 2010, 16:12
hm nagut denn werd ich mal versuchen ob ich mit der Chipmunk engine klar komm
allerdings bekomm ich beim öffnen der demo gleich die meldung
TGLSceneViewer, TGLViewer, TGLMateriallibarary, TGL Cadencer usw .... wurden nicht gefunden
Wozu gehören diese komponenten und wo bekomm ich diese hier ?

gruß Sportkeks
Now we're taking a break to eat some cake.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#10

AW: Simple 2D Physik

  Alt 1. Sep 2010, 16:21
Die genannten Komponenten gehören zu GLScene.
Allerdings braucht die Chipmunk Engine GLScene nicht zwingend, die Demo benutzt halt GLScene für das Rendering.
  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 21:40 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