Minimaler Abstand einer Strecke von einem Zylinder

Neue Frage »

Peeder Auf diesen Beitrag antworten »
Minimaler Abstand einer Strecke von einem Zylinder
Meine Frage:
Hallo zusammen,

ich habe das folgende Problem: Ich habe eine Strecke gegeben durch und einen Zylinder (nach oben und unten begrenzt), der gegeben ist durch einen Aufpunkt , den Radius , und dem Richtungsvektor . Ein Punkt auf dem Zylinder ist damit durch die zwei folgenden Gleichungen definiert:
(1)
(2)
(auch nachzusehen unter http://www.matheboard.de/archive/1188/thread.html)

Wie bekomme ich jetzt den minimalen Abstand dieser zwei Funktionen?

Meine Ideen:
Als erstes kann man sich die Schritte der oben angegebenen Quelle ansehen. Dort wird allerdings der Schnittpunkt und nicht der minimale Abstand berechnet (den ich gerne hätte) smile V.a. meine ich dort den drittletzten Beitrag von LtJax.

Man kann aus der oben genannten Gleichung (2) folgendes bekommen:


Löst man aus der Gleichung (1) und setzt es ein, bekommt man die allgemeine Gleichung des Zylinders (hier sind dann auch gleich , und und die Reste in den Klammern zusammengefasst zu neuen :


Als zweites habe ich die ganz normale Streckengleichung:

(Die Skalierung von sei hier erst einmal außer acht gelassen, sie dient nur dazu, die Gerade zu einer Strecke zu machen)

Der ganz normale Abstand im ist definiert aus der Wurzel der einzelnen Quadrate der Differenzen in den Koordinatenrichtungen (http://de.wikipedia.org/wiki/Abstand#Euklidischer_Abstand).
Jetzt kann ich ja in diesem Fall die Formel nicht einfach anwenden und mir ist im Moment leider nicht klar, wie ich das machen kann. Gibt es eine (analytische) Lösung?
Es gibt leider sehr viele Spezialfälle (wenn z.B. die ganze Strecke überhalb des Zylinders liegt, dann ist ja eigentlich der kürzeste Abstand derjenige zum Ring, bzw. wenn man den Zylinder als geschlossen betrachtet, was ich aus Gründen der Einfachheit einfach mal unter den Tisch habe fallen lassen, ist der kürzeste Abstand der zur Stirnfläche).

Viel Dank schon mal im Vorraus für Eure Hilfen und Hilfestellungen!

Gruß
Peeder
riwe Auf diesen Beitrag antworten »
RE: Minimaler Abstand einer Streck von einem Zylinder
1) das ist keine strecke sondern eine gerade
2) wenn die gleichungen (1) und (2) EINEN punkt des zylinders beschreiben sollen verwirrt ,
wo liegt dann das problem, den abstand dieses punktes von sich selbst zu bestimmen?

meine frage: willst du den minimalen abstand der geraden (strecke) von der zylinderachse berechnen, oder was genau willst du bestimmen?
Peeder Auf diesen Beitrag antworten »

Hallo,

sorry, falls ich mich missverständlich ausgedrückt haben sollte:
(1) Ich denke aus der Geragengleichung erhalte ich eine Strecke sobald ich begrenze, also z.B. zwischen 0 und 1, dann ist die Strecke genau zwischen den Punkten a und b
(2) die Gleichungen (1) und (2) aus dem ersten Post beschreiben einen beliebigen Punkt auf der Mantelfläche des Zylinders. Und ich will ja den kürzesten Abstand zur Strecke.

Zu deiner Frage: Ich will den minimalen Abstand den eine Strecke (oder auch Gerade) von einem Zylinder hat. Man kann, wenn man eine Gerade und einen unedlich langen Zylinder hat, den Abstand bestimmen (das habe ich schon), in dem man einfach die Strecke/Gerade sucht, die auf der Zylinderachse und der gegebenen Strecke senkrecht steht. Dieses Problem wird aber erheblich schwieriger, wenn man den Zylinder nach oben und unten begrenzt, weil z.B. die vorher erwähnte Senkrechte außerhalb des Körpers liegen kann und damit der kürzeste Abstand nicht mehr durch die Senkrechten der Mittelachse und gegebener Strecke bestimmt ist.

Ich versuche heute nachmittag mal ein Bild hochzuladen, da ich gerade wenig Zeit habe, vielleicht wird das ganze dann anschaulicher smile

Gruß
Peeder Auf diesen Beitrag antworten »

So, jetzt habe ich ein Bild erstellt (siehe Anhang), um das Problem vielleicht klarer zu machen. Zu sehen sind zwei Windschiefe Geraden in diesem Fall. Der kürzeste Abstand zwischen den Geraden ist gekennzeichnet, der minimale Abstand der Gerade zum Zylinder ist aber an der rot umrandeten Stelle. Wie kann ich dies also rechnerisch lösen?
Danke!

Gruß
Peeder

PS: Auch wenn im Bild hier Geraden zu sehen sind und ich in diesem Post von Geraden rede, würde ich doch gerne Strecken verwenden...
riwe Auf diesen Beitrag antworten »

was verstehst du denn nun unter dem minimalen abstand verwirrt
das lot von der geraden auf die kante oder so verwirrt

wieso verwendest du geraden, wenn du strecken meinst verwirrt

hast du ein konkretes beispiel?
ich habe eine hübsche "idee", die sich noch dazu einfach realisieren läßt
(nehme ich an) Augenzwinkern
Peeder Auf diesen Beitrag antworten »

Hallo Werner,

ich sehe schon viele Fragen auf der anderen Seite smile Ich versuche mein best möglichstes diese zu beantworten:

Unter dem minimalen Abstand verstehe ich den kleinsten Abstand, den eine gegebene Gerade von einem gegebenen Zylinder hat, wobei der Zylinder nach oben und unten begrenzt ist. Leider habe ich so auf die schnelle in meiner Zeichung Geraden verwendet das gebe ich ja zu, ich hoffe aber doch, dass man sich das vorstellen kann (die Zeichung dient ja nur zur Orientierung).

Wenn du schrieibst "das lot von der geraden auf die Kante" dann ist das vielleicht für meinem gezeichneten Fall wohl zutreffend, aber bei der Kombination Strecke <-> endlicher Zylinder fallen mir zig unterschiedliche Fälle ein (z.B. Strecke komplett oberhalb/unterhalb der Stirnflächen).

Ich würde gerne wissen, ob von euch jemand eine "analytische" Lösung hat, in der ich nicht diese unterschiedlichen Fälle durchkauen muss und dann jeweils einzeln verschiedene Abstände zur Mandelfläche (von der ich noch keinen Lösungsansatz hab) bis zum Abstand zur Kante und zu den Stirnflächen berechnen muss.

Wenn du schon eine Idee hast, dann bin ich mal gespannt darauf, und wenn sich noch einfach zu realisieren ist, umso besser Freude

Gruß
Peeder
 
 
deBolle Auf diesen Beitrag antworten »
Schon eine Antwort gefunden?
Hallo Peeder,

warst Du mittlerweile schon weiter gekommen mit diesem Thema?

Ich bin so weit, daß ich zwischen den beiden Geraden (durch die Höhe und die Strecke, wenn Du noch beim Thema bist) den kürzesten Vektor bestimme und dann fertig bin, solange Anfangs und Endpunkt innerhalb der Strecken liegen. Dann kann ich einfach den Radius abziehen.

Wenn nicht, wird es knifflig und ich komme bisher nur mit Iterationsschritten weiter, die ich gerne vermeiden würde.

Hast Du noch Interesse an dem Thema

Gruß
Bolle
Peeder Auf diesen Beitrag antworten »

Hallo Bolle,

puuuuuuh, das ist nun doch schon eine "kleine" Weile her - knapp 6 Jahre... Schläfer

Ich habe damals versucht das Problem etwas herunterzubrechen, d.h. in einzelne Rechnungen, z.B. Abstand Strecke<->Kreis (=Zylinderfläche) usw. Ich bin dann zu so vielen Möglichkeiten/Unterscheidungen gekommen, dass ich die eigene Suche nach einer einzigen analytischen Lösung nicht mehr verfolgt habe.

Ich habe damals dann nach wissenschaftlichen Artikeln gesucht und folgendes gefunden:
"Fast and Accurate Circle-Circle and Circle-Line 3D Distance Computation"
David Vranek
Journal of graphics tools, 7(1):23-32, 2002

Den Artikel habe ich dann über eine Uni-Bibliothek bezogen (war kostenlos). Leider habe ich aber davon keine Abzüge mehr.

Soweit ich mich auch noch erinnere hat der Autor Teile der "Eberly's Wild Magic library" verwendet. Die entsprechende Seite findet google gerne für dich (da ich leider keine Links posten darf).

Sorry, die/eine Lösung kann ich dir leider nicht anbieten, da ich selbst nicht mehr weiß, wie ich die Umsetzung gemacht habe unglücklich

Trotzdem viel Erfolg! Freude

Grüße,
Peeder
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »