AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Kollision von Ellipsoiden

Ein Thema von 3_of_8 · begonnen am 17. Okt 2007 · letzter Beitrag vom 20. Okt 2007
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

Kollision von Ellipsoiden

  Alt 17. Okt 2007, 23:39
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?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Logic
Logic

Registriert seit: 28. Nov 2003
132 Beiträge
 
Delphi 7 Personal
 
#2

Re: Kollision von Ellipsoiden

  Alt 17. Okt 2007, 23:50
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.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Kollision von Ellipsoiden

  Alt 17. Okt 2007, 23:54
Hier ist es aber 3 dimensional

Eventuel hilft dir das hier weiter, ist aber englisch.
http://www.peroxide.dk/download/tuto.../pxdtut10.html
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Kollision von Ellipsoiden

  Alt 17. Okt 2007, 23:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 00:06
@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?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 00:08
x n +1 = x n - (f(x n) / f'(x n))
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 00:09
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...
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 00:56
Zitat von axelf98:
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...
Falsch... Ellipsoide müssen sich nicht auf der Verbindungsgerade ihrer Mittelpunkte schneiden.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 15:00
Zitat von quendolineDD:
x n +1 = x n - (f(x n) / f'(x n))
Tut mir Leid, aber was mache ich jetzt mit dieser Gleichung? Was ist überhaupt x in diesem Fall? Und was ist f?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Kollision von Ellipsoiden

  Alt 18. Okt 2007, 15:10
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) )
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz