Dokument
libageo · Gerade · Abstandsfunktionen
Synopsis
double line:: distance (const point&) const
double line:: distance (const line&) const
double line:: distance (const plane&) const
double line:: distance (const circle&) const
double line:: distance (const cylinder&) const
double line:: distance (const sphere&) const
double distance (const line&, const point&)
double distance (const line&, const line&)
double distance (const line&, const plane&)
double distance (const line&, const circle&)
double distance (const line&, const cylinder&)
double distance (const line&, const sphere&)
double line:: sdistance (const vector&, const point&) const
double line:: sdistance (const vector&, const line&) const
double line:: sdistance (const vector&, const plane&) const
double line:: sdistance (const vector&, const circle&) const
double line:: sdistance (const vector&, const cylinder&) const
double line:: sdistance (const vector&, const sphere&) const
double sdistance (const line&, const vector&, const point&)
double sdistance (const line&, const vector&, const line&)
double sdistance (const line&, const vector&, const plane&)
double sdistance (const line&, const vector&, const circle&)
double sdistance (const line&, const vector&, const cylinder&)
double sdistance (const line&, const vector&, const sphere&)
Beschreibung
Die Methoden, respektive Funktionen, distance und sdistance liefern den kürzesten Raumabstand zwischen einer Geraden und einem anderen Geometrieelement. distance betrachtet den Richtungsvektor bzw. Mittelpunkt des Elementes nicht. Daher wird der Abstand vorzeichenlos zurückgeliefert. sdistance berücksichtigt den Richtungsvektor bzw. Mittelpunkt des Elementes. Der Abstand zum Element wird vorzeichenbehaftet geliefert.
· Abstand Gerade-Punkt
· Abstand Gerade-Gerade
distance liefert den kleinsten Abstand zweier Geraden oder 0, falls die Geraden sich schneiden.
· Abstand Gerade-Ebene
Für die nachfolgenden Beispiele liefert distance jeweils den gleichen positiven Abstandswert, während sdistance einen positiven Abstandswert nur für Geraden liefert, die auf der Seite der Ebene verlaufen in die der Ebenenvektor zeigt. Für Geraden auf der dem Ebenenvektor gegenüberliegenden Seite sind die Abstandswerte negativ. Sowohl distance als auch sdistance liefern nur Abstandswerte ungleich 0, wenn die Gerade parallel zur Ebene verläuft. Alle anderen Geraden schneiden die Ebene in einem Punkt (d.h. minimaler Abstand 0).
· Abstand Gerade-Kreis
Für die nachfolgenden Beispiele liefert distance jeweils den gleichen positiven Abstandswert, während sdistance einen positiven Abstandswert nur für Geraden liefert, bei denen der dem Kreis nächstgelegene Punkt außerhalb des Kreises liegt. Für Punkte innerhalb des Kreises wird ein negativer Abstandswert zurückgeliefert.
Die Gerade muß nicht in der Ebene des Kreises liegen.
· Abstand Gerade-Zylinder
Für die nachfolgenden Beispiele liefert distance jeweils den gleichen positiven Abstandswert, während sdistance einen positiven Abstandswert nur für Geraden liefert, die den Zylinder nicht schneiden. Schneidet die Gerade den Zylinder, wird der kleinste lotrechte Abstand der Geraden zur Kugelschale mit negativem Vorzeichen zurückgeliefert.
· Abstand Gerade-Kugel
Für die nachfolgenden Beispiele liefert distance jeweils den gleichen positiven Abstandswert, während sdistance einen positiven Abstandswert nur für Geraden liefert, die Kugel nicht schneiden. Für Geraden die die Kugel schneidet, wird der kleinste lotrechte Abstand der Geraden zur Kugelschale mit negativem Vorzeichen zurückgeliefert.
Beispiel
line   ln = line( point(10,20,30), vector(0.707,0.707,0) );
point  p  = point( 15,20,30 );
double d  = ln.distance(p);
line   ln = line( point(10,20,30), vector(0.707,0.707,0) );
point  p  = point( 15,20,30 );
double d  = ln.distance(p, plane( point(0,0,0), vector(0,0,1) ));
Siehe auch
Alle Methoden und Operatoren.