Seite 1 von 2

3D Engine Kollision

Verfasst: 04.12.2004 21:38
von Lukas-P
Hallo

Kann mir jemand eine Procedure Proggen, mit der ich festellen kann ob zwei Entitys kollisionieren?




Danke schonmal im Voraus :wink:

[EDIT] verschoben von Danilo

Verfasst: 04.12.2004 22:21
von Robert Wünsche
Also:
Die einfachste variante:
Rechne einfach den Abstand zwischen denn beiden gegenständen aus und Prüfe, ob die summe der maximalen radien der beiden gegenstände größer ist als die entfernung, wenn dem so ist, kollidieren die beiden gegenstände !

Es giebt dann auch noch polygonale Kollisionsalgohtrhytmen, die aber fast niemand kennt :wink: .

Verfasst: 04.12.2004 22:28
von hardfalcon
Die Formel zur berechnung der Entfernung zwischen 2 Punkten findest du im PB-Manual im Mathematik-Teil! Allerdings ist diese Formel zur Berechung in einem 2D-Koordinatensystem. Ich weiss jetztleiderkeine Formel für ein 3D-System,aber google sollte da abhilfe schaffen können... :wink:

cya
Pascal

Verfasst: 04.12.2004 22:41
von hardfalcon
Ich hab' ein Tutorial gefunden:
http://www.scherfgen-software.net/index ... =tutorials
Hoffe, ich konnte dir helfen! :allright:

cya
Pascal

Verfasst: 05.12.2004 09:25
von DarkDragon
hardfalcon hat geschrieben:Die Formel zur berechnung der Entfernung zwischen 2 Punkten findest du im PB-Manual im Mathematik-Teil! Allerdings ist diese Formel zur Berechung in einem 2D-Koordinatensystem. Ich weiss jetztleiderkeine Formel für ein 3D-System,aber google sollte da abhilfe schaffen können... :wink:

cya
Pascal
SQR((x1-x2)^2 + (y1-y2)^2) wird zu SQR((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)

Blubb, fertig.

Verfasst: 05.12.2004 15:07
von Lukas-P
SQR((x1-x2)^2 + (y1-y2)^2) wird zu SQR((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)
IS JA EINFACH!!! :oops: :roll: :cry:

Verfasst: 05.12.2004 16:02
von DarkDragon
:? wenn du nichtmal das rausfindest, frag ich mich wie du überhaupt irgendwas in 3D machen willst. Ist wirklich nicht böse gemeint, aber das wäre in Purebasic doch voll simpel:

SQR((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)

Code: Alles auswählen

SQR(Pow(x1-x2, 2) + Pow(y1-y2, 2) + Pow(z1-z2, 2))

Verfasst: 05.12.2004 19:59
von Robert Wünsche
Also ich hab mir eine formel aus dem Tafelwerk rausgesucht (Die strecke vom einem zum anderen Ende in einem Quader) und hab sie für PB entsprechend umgebaut.
Ich muss Darkdragon mal recht geben:
Das war wirklich nicht (sehr) schwer !

Verfasst: 06.12.2004 17:34
von Lukas-P
Ja wenn ihr doch alle so gut seit. Dann könnt ihr mir doh bestimmt eine Procdure für die Kollision proggen. :D

Verfasst: 06.12.2004 17:56
von DarkDragon
Hab ich ja schon. Sogar für ne genaue Kollision:

http://robsite.de/php/pureboard-archiv/ ... php?t=5160