Schnittpunktbestimmung < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo,
ich möchte den Schnittpunkt zwischen einer Kapsel (ein Zylinder mit Halbkugeln an den Polen) und einem Segment berechnen. Gegeben sind die Enpunkte des Segments P und Q, sowie die Enpunkte A und B der Kapsel und der Radius. Die Endpunkte A und B liegen nicht auf den Polen, sonder quasi auf den Kappen des "inneren" Zylinders.
Ich habe zwei Ideen:
A) Ich kann mir die Kapsel als eine Kugel vorstellen die sich von A nach B bewegt. Dann kommt es zu einem Schnitt wenn der Abstand zwischen zwei beliebigen Punkten auf den Strecken PQ und AB gleich dem Radius ist. Also:
S1: p1(s) = P + s * ( Q - P )
S2: p2(t) = A + t * ( B - A )
|d| = |p2 - p1| = r <=> (p2 - [mm] p1)^2 [/mm] = [mm] r^2
[/mm]
Das qibt eine quadratische Gleichung in s und t. Ich könnte s als Funktion von t ausdrücken, aber dann weiss ich nicht weiter.
B)
Ich definiere das Segement als
S: x = P + s ( Q - P ) und 0 <= s <= 1
und die Kapsel als Kugel mit "bewegendem" Mittelpunkt
K: ( x - c( t ) [mm] )^2 [/mm] = [mm] r^2 [/mm] wobei c( t ) = A + t * ( B - A ) und 0 <= t <= 1
Einsetzen liefert wieder eine Gleichung wie oben.
Entweder ist der ganze Ansatz falsch oder ich übersehe noch eine weiter Bedingung die ich benutzen kann.
Gruss,
-Dirk
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:11 Do 20.12.2007 | Autor: | Zneques |
Hallo,
die Ansätze sind beide richtig.
Die quadratische Funktion die du dann erhälst, musst du als Funktion von t (oder s) auffassen und dann mit p-q-Formel lösen.
Wenn du in die daraus resultierenden Lösungen [mm] s\in[0,1] [/mm] (oder t) einsetzt und für t (oder s) ein Wert [mm] \in[0,1] [/mm] erhälst, dann hast du einen Schnittpunkt. D.h. das Segment ragt in die Kapsel hinein.
Ciao.
|
|
|
|
|
Hi,
das habe ich auch gedacht, aber ich habe keine quadratische Funktion f(s) oder f(t), sondern eine quadratische Funktion f( s, t ). Was fehlt ist das ich s (oder t) als eine Funktion von t (oder s) ausdrücken kann.
Intuitiv hätte ich gedacht (geraten), dass ich vielleicht sowas wie |A - B| * t = |P - Q| * s verwenden könnte.
Danke für die Hilfe,
-Dirk|
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 04:17 So 23.12.2007 | Autor: | Zneques |
Wenn du dir nun vorstellst, dass das t schon feststeht, und erst später eigesetzt wird, dann wird aus der Funktion [mm] f(s,t)=f_t(s) [/mm] eine quadratische Funktionschaar in s. D.h. du erhälst Lösungen [mm] s_{1/2} [/mm] in Abhängigkeit von der Konstanten t. Also s als Funktion von t.
|
|
|
|
|
Nehmen wir mal den zweiten Ansatz (ich benutze aber eine etwas andere Notation):
S: [mm] \vec{x} [/mm] = [mm] \vec{a} [/mm] + [mm] s\vec{u}
[/mm]
K: [mm] (\vec{x} [/mm] - [mm] \vec{c})^{2} [/mm] = [mm] r^{2}
[/mm]
Einsetzen liefert folgende quadratische Gleichung als Funktion von s:
S [mm] \cap [/mm] K [mm] \gdw (\vec{a}-\vec{c})^{2} [/mm] - [mm] 2(\vec{a}-\vec{c})\vec{u}s [/mm] + [mm] \vec{u}^{2}s^{2} [/mm] = [mm] r^{2} [/mm]
[mm] \gdw s^{2} [/mm] - [mm] \bruch{ 2(\vec{a}-\vec{c})\vec{u} }{ \vec{u}^{2} }s [/mm] + [mm] \bruch{ (\vec{a}-\vec{c})^{2} }{ \vec{u}^{2} } [/mm] - [mm] r^{2} [/mm] = 0 und [mm] |\vec{u}| [/mm] > 0
Das kann ich jetzt beispielsweise mit der p,q Formel lösen ( mit [mm] \vec{c} [/mm] = [mm] \vec{b} [/mm] + [mm] t\vec{v} [/mm] ):
p = [mm] -\bruch{ 2(\vec{a}-\vec{c})\vec{u} }{ \vec{u}^{2} } [/mm] = [mm] -\bruch{ 2(\vec{a}- \vec{b} - t\vec{v})\vec{u} }{ \vec{u}^{2} } [/mm]
q = [mm] \bruch{ (\vec{a}-\vec{c})^{2} }{ \vec{u}^{2} } [/mm] - [mm] r^{2} [/mm] = [mm] \bruch{ (\vec{a}-\vec{b} - t\vec{v})^{2} }{ \vec{u}^{2} } [/mm] - [mm] r^{2}
[/mm]
Die Diskreminante der p,q Formel ist jetzt eine Funktion von t. Die notwendige Bedingung für einen Schnittpunkt ist dann, dass ein t exisitiert, so dass die Diskreminante grösser oder gleich Null ist und 0 <= t <= 1. Das Ergebnis sezte ich dann wieder ein und finde s. Gilt dann wieder 0 <= s <= 1 existiert ein Schnittpunkt.
Q1: Ist das so richtig? Wenn ja, wie erkenne ich dann noch, ob ich ein, zwei oder unendlich viele Schnittpunkte habe?
Q2: Kann ich die obigen Gleichungen geometrisch interpretieren?
Q3: Kann ich das gleiche Prinzip für die Schnittpunktbestimmung Zylinder mit Segment verwenden? Was würde sich gegebenenfalls ändern?
Vielen Dank,
-Dirk
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:17 So 23.12.2007 | Autor: | Zneques |
Bis auf den Vorzeichenfehler [mm] (-t\vec{v}) [/mm] bei p und q kanni ch keine Fehler finden.
Im allgemeinen gibt es immer unendlichviele Lösungen. Sollte doch mal nur eine existieren, dann muss entweder t oder s [mm] \in\{0,1\} [/mm] sein. (Es gibt noch Sonderfälle [mm] \vec{u}=0,\vec{v}=0 [/mm] , [mm] \vec{u} [/mm] klein und das Segment liegt in der Kapsel)
Geometrisch gesehen suchen wir nach allen Mittelpunkten einer Kugel auf der Gerade [mm] \overrightarrow{AB}=\vec{a}+s\vec{u} [/mm] für die das Segment [mm] \overrightarrow{PQ}=\vec{b}+t\vec{v} [/mm] die Oberfläche der Kugel durchbohrt.
(Theoretisch kann man es so auch als auf [mm] \overrightarrow{PQ} [/mm] wanderne Kugel auffassen. Wäre mathematisch kein großer Unterschied.)
Da der Zylinder keinen runden Abschluss hat, ist der Trick mit der Kugel nicht mehr anwendbar. Man sollte dann über die Abstandsberechnungen gehen.
[mm] P_t [/mm] ein Punkt auf dem Segment [mm] \overrightarrow{PQ}=\vec{b}+t\vec{v}
[/mm]
[mm] P_t' [/mm] der Lotpunkt von [mm] P_t [/mm] auf der Mittelgeraden [mm] \overrightarrow{AB}=\vec{a}+s\vec{u} [/mm] des Zylinders
Dann gilt : [mm] P'_t=A+<\overrightarrow{AP_t},\bruch{\overrightarrow{AB}}{|\overrightarrow{AB}|}>*\bruch{\overrightarrow{AB}}{|\overrightarrow{AB}|}
[/mm]
D.h. für [mm] \bruch{1}{|\overrightarrow{AB}|^2}*<\overrightarrow{AP_t},\overrightarrow{AB}>\in[0,1] [/mm] liegt das [mm] P_t [/mm] neben/in dem Zylinder mit [mm] Abstand^2=|\overrightarrow{AP_t}|^2-<\overrightarrow{AP_t},\bruch{\overrightarrow{AB}}{|\overrightarrow{AB}|}>^2 [/mm] (Pythagoras)
Wenn es also ein t gibt, so dass dieser Abstand [mm] \le [/mm] r (=r für durchbohren der Oberfläche) wird, dann gibt es eine Berührung.
Ciao.
|
|
|
|
|
Danke, ich habe den Vorzeichenfehler oben korrigiert.
Ich habe noch zwei andere Ideen für den Zylinder.
1) Ich kenne die lokalen Koordinatensysteme des Segments und des Zylinders. Wäre es sinnvoll das Segment in die lokalen Koordinaten des Zylinders zu transformieren? Nehmen wir ein rechtshändiges Koordinatensystem mit der y-Achse nach oben (zur Anschauung), dann kann ich den Zylinder mit der Höhe h doch wie folgt ausdrücken:
[mm] x^{2} [/mm] + [mm] z^{2} [/mm] = [mm] r^{2} [/mm] und [mm] -\bruch{h}{2} \le [/mm] y [mm] \le \bruch{h}{2}
[/mm]
Für das Segment gilt dann S: [mm] \vec{x} [/mm] = P' + s(Q' - P'), wobei die Hochkommata ausdrücken sollen, dass das Segment in die lokalen Koordinaten des Zylinders transformiert wurde.
2) Die andere Alternative wäre den Zylinder mit Radius r wie folgt auszudrücken:
Z: [mm] \vec{x} [/mm] = [mm] \vec{a} [/mm] + [mm] s\vec{u} [/mm] + [mm] r*sin(\alpha)\vec{e_{1}} [/mm] + [mm] r*cos(\alpha)\vec{e_{2}} [/mm] wobei [mm] \vec{e_{1}} [/mm] und [mm] \vec{e_{2}} [/mm] mit [mm] \vec{u} [/mm] eine beliebige orthonormal Basis bilden und 0 [mm] \le [/mm] s [mm] \le [/mm] 1, 0 [mm] \le \alpha \le 2\pi, [/mm]
Für diesen Ansatz gibt es einen Trick um den trigeometrischen Funktionen zu elimieren. Ich meine mich zu erinnern, dass ich [mm] \alpha [/mm] beliebig wählen kann, also z.B [mm] \alpha [/mm] = 0. Gibt es so einen Ansatz? Und wenn ja, was ist die Begründung?
Achso, ich verstehe die Notation in den eckigen Klammern <> nicht so ganz. Was ist damit gemeint?
Vielen Dank!
-Dirk
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:04 Do 27.12.2007 | Autor: | M.Rex |
Hallo
[mm] <\vec{a};\vec{b}> [/mm] ist das Skalarprodukt der beiden Vektoren [mm] \vec{a} [/mm] und [mm] \vec{b}
[/mm]
Ansatz 1) ist meiner Meinung nach okay, bei Ansatz 2) bin ich mir nicht ganz sicher. Was ist der Winkel [mm] \alpha? [/mm] Und was meinst du mit [mm] \alpha=0?
[/mm]
Marius
|
|
|
|
|
Der zweite Ansatz kommt aus einem Post hier aus dem Forum mit folgendem Link:
http://www.mathspace.org/read?i=77680
Ich verstehe den Ansatz und ebenfalls das es unendlich viele Orthonormalbasen gibt. Was ich nicht verstehe ist, dass ich Phi zu Null wählen kann und was das mit den beiden orthonormal Vektoren i und j zu tun hat. Die zweite technische Erklärung ist mir klar. Ich habe drei Gleichungen und Unbekannte, wobei ich an dem Winkel Phi/Alpha nicht interessiert bin und ihn durch quadrieren bzw. Multiplikation mit dem Differenzvektor eliminieren kann. Sieht ziemlich elegant aus.
Danke für die Hilfe!
-Dirk
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 03:25 Fr 28.12.2007 | Autor: | Zneques |
Ja, das sieht wirklich recht wissenschaftlich aus. :)
Er hat dabei gemeint, dass er die beiden Basisvektoren i und j so rotiert (da frei wählbar), dass der Winkel [mm] \alpha [/mm] der Lösung den Wert 0 haben wird.
Dies ist problemlos möglich, da man einem Zylinder ja nicht ansieht wo seine 0-Grad-Seite ist.
Er hat leider seine Rechnung nicht zuende ausgeführt. Solltest du mal nachrechnen. Mit der entsprechenden Notation erhält man nämlich genau die Gleichungen, die ich mir oben geometrisch hergeleitet hatte.
Ciao.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 03:10 Fr 28.12.2007 | Autor: | Zneques |
Eine Koordinatentransformation läßt sich natürlich immer durchführen. Man muss sich das jedoch so vorstellen, als ob man sich als Beobachter um das System dreht, und es danach aus einen anderen Winkel betrachtet. Es bringt somit keine Lösung. Es kann aber bei geschickter Wahl die Rechnungen vereinfachen. Du hast also wieder den Ansatz mit der wandernden Kugel (hier ein Kreis, für den ebenen Abschluss), jedoch in gut vereinfachter Form.
Zu 2) schreibe ich mal unter der anderen Frage.
Ciao.
|
|
|
|
|
Ich werde das jetzt mal durchrechnen ( nachdem der Weihnachtsstress endlich vorbei ist )
Ich bin mir bei zwei Sachen allerdings noch nicht sicher:
1) Für den Ansatz mit der "bewegten" Kugel gibt es ja i.d.R. unendlich viele Lösungen. Ich suche aber eine spezielle Lösung, nämlich da wo das Segment den extrudierten Körper trifft. Oder in anderen Worten: Kann ich mit dem "bewegten" Kugel Ansatz die gleiche Lösung finden, die mir mein aller erster Ansatz in Form der Anstandsformulierung liefern würde. Ist das irgenwie als Sonderfall enthalten und kann ich das ermitteln?
2) Liefern die Zylinder Formulierungen auch die Schnitpunkte mit den Kappen oder müssen die gesondert behandelt werden?
Danke!
-Dirk
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 So 30.12.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|