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 .
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...
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...
cya
Pascal
SQR((x1-x2)^2 + (y1-y2)^2) wird zu SQR((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)
Blubb, fertig.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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 !
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.