![]() |
Kollision von Ellipsoiden
Morgen.
Ich habe gerade ein mathematisches Problem. Angenommen ich habe zwei Kugeln. Ich kann sehr leicht feststellen, ob die Kugeln gerade kollidieren, und zwar indem ich teste, ob der Abstand der Mittelpunkte kleiner ist als die Summe der Radien der Kugeln. Wenn ich jetzt aber zwei Ellipsoide habe, geht das nicht mehr so leicht. Die Ellipsoide können in alle 3 Achsen beliebig verformt und gedreht sein. Wie bekomme ich jetzt eine allgemeine - und möglichst effiziente - Formel, um eine Kollision festzustellen? |
Re: Kollision von Ellipsoiden
Kannst du die beiden Formel nicht gleichsetzen und so den Schnitt bestimmen?
Ist doch wie mit 2 Ebenen im Raum die sich in einer Schnittgeraden schneiden. |
Re: Kollision von Ellipsoiden
Hier ist es aber 3 dimensional
Eventuel hilft dir das hier weiter, ist aber englisch. ![]() |
Re: Kollision von Ellipsoiden
Das hindert aber nicht am Gleichsetzen. Bei Ellipsoiden dürfte das allerdings nicht mehr exakt gehen, in dem Fall müsste man auf Näherungsverfahren, zum Beispiel nach Newton, ausweichen.
|
Re: Kollision von Ellipsoiden
@quendolineDD: Das ist schonmal sehr interessant, aber leider beschreibt es nur, wie man einen Ellipsoid mit Dreiecken kollidieren lässt und nicht mit anderen Ellipsoiden. Ich könnte den anderen einfach in viele Dreiecke aufteilen, aber wirklich effizient ist das leider nicht.
@Dax: Was genau ist das Newtonsche Näherungsverfahren? |
Re: Kollision von Ellipsoiden
x n +1 = x n - (f(x n) / f'(x n))
|
Re: Kollision von Ellipsoiden
Eine Idee wäre, eine Vektorgerade zu basteln, die durch die Mittelpunkte der beiden Ellipsoiden geht. Diese Gerade verfolgt man jeweils und rechnet so den Abstand vom Mittelpunkt zur Hülle aus. Ist Abstand 1 + Abstand 2 größer als der Abstand der Mittelpunkte, so schneiden sich die Körper.
Leider habe ich zur Zeit keine Ahnung, ob das effizient genug ist... |
Re: Kollision von Ellipsoiden
Zitat:
|
Re: Kollision von Ellipsoiden
Zitat:
|
Re: Kollision von Ellipsoiden
Näherungsverfahren sind iterativ.
Du nimmst dir einfach irgendein x (welches nah genug am Schnittpunkt liegt) und rechnest über die Formel x - f(x)/f'(x), dein neues x aus. Und nach n Schritten liegst du dann sehr nah am Ergebnis. eine Abbruchbedingung wird dir sicherlich noch einfallen ;-) f(x)...Die funktion zur Schnittpunktberechnung f'(x).. deren 1. Ableitung Edit: jetzt bruachst du "nur" noch die Funktion f(x), welche den Den Schnittpunkt bestimmt. (Was bei zwei Ellipsoiden eigentlich eine Ellipse ergeben sollte und damit nicht einfach f(x) :gruebel: ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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