distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMin (Operator)

Name

distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMin — Ermitteln des minimalen Abstands zwischen den Konturpunkten von je zwei Regionen.

Signatur

distance_rr_min(Regions1, Regions2 : : : MinDistance, Row1, Column1, Row2, Column2)

Herror distance_rr_min(const Hobject Regions1, const Hobject Regions2, double* MinDistance, Hlong* Row1, Hlong* Column1, Hlong* Row2, Hlong* Column2)

Herror T_distance_rr_min(const Hobject Regions1, const Hobject Regions2, Htuple* MinDistance, Htuple* Row1, Htuple* Column1, Htuple* Row2, Htuple* Column2)

void DistanceRrMin(const HObject& Regions1, const HObject& Regions2, HTuple* MinDistance, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2)

HTuple HRegion::DistanceRrMin(const HRegion& Regions2, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2) const

double HRegion::DistanceRrMin(const HRegion& Regions2, Hlong* Row1, Hlong* Column1, Hlong* Row2, Hlong* Column2) const

static void HOperatorSet.DistanceRrMin(HObject regions1, HObject regions2, out HTuple minDistance, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)

HTuple HRegion.DistanceRrMin(HRegion regions2, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)

double HRegion.DistanceRrMin(HRegion regions2, out int row1, out int column1, out int row2, out int column2)

Beschreibung

distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMin berechnet den minimalen Abstand von Paaren von Regionen. Falls mehrere Regionen in Regions1Regions1Regions1Regions1regions1 und Regions2Regions2Regions2Regions2regions2 übergeben werden, wird der Abstand zwischen den Konturpunkten der jeweils i-ten Elementen berechnet. Dieser bildet dann den i-ten Eintrag im Ausgabeparameter MinDistanceMinDistanceMinDistanceMinDistanceminDistance. Es wird der euklidische Abstand berechnet. Die Parameter (Row1Row1Row1Row1row1,Column1Column1Column1Column1column1) bzw. (Row2Row2Row2Row2row2, Column2Column2Column2Column2column2) geben die Position auf der Kontur von Regions1Regions1Regions1Regions1regions1 bzw. Regions2Regions2Regions2Regions2regions2 an, zwischen denen der Abstand minimal ist.

Die Berechnung erfolgt durch den Vergleich aller Konturpunkte (siehe get_region_contourget_region_contourGetRegionContourGetRegionContourGetRegionContour). Dies bedeutet insbesondere, dass Hohlflächen innerhalb der Regionen nicht berücksichtigt werden. Weiterhin wird nicht überprüft, ob eine Region vollständig innerhalb der anderen Region liegt. In diesem Fall wird ein Abstand > 0 zurückgegeben. Es wird auch nicht überprüft, ob die beiden Regionen einen nichtleeren Schnitt besitzen. Im diesem Fall kann, je nachdem, ob die Konturen der Regionen einen gemeisamen Punkt besitzen oder nicht, ein minimaler Abstand von 0 oder von > 0 als Ergebnis zurückgeliefert werden.

Achtung

Beide Eingabeparameter müssen die gleiche Anzahl von Regionen enthalten. Die Regionen dürfen nicht leer sein.

Ausführungsinformationen

Parameter

Regions1Regions1Regions1Regions1regions1 (input_object)  region(-array) objectHRegionHRegionHobject

Zu untersuchende Regionen.

Regions2Regions2Regions2Regions2regions2 (input_object)  region(-array) objectHRegionHRegionHobject

Zu untersuchende Regionen.

MinDistanceMinDistanceMinDistanceMinDistanceminDistance (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Minimaler Abstand zwischen Konturen der Regionen.

Zusicherung: 0 <= MinDistance

Row1Row1Row1Row1row1 (output_control)  point.y(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex auf Kontur in Regions1Regions1Regions1Regions1regions1.

Column1Column1Column1Column1column1 (output_control)  point.x(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex auf Kontur in Regions1Regions1Regions1Regions1regions1.

Row2Row2Row2Row2row2 (output_control)  point.y(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex auf Kontur in Regions2Regions2Regions2Regions2regions2.

Column2Column2Column2Column2column2 (output_control)  point.x(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex auf Kontur in Regions2Regions2Regions2Regions2regions2.

Komplexität

Seien N1,N2 die Längen der Konturen, dann beträgt die Laufzeitkomplexität O(N1 * N2).

Ergebnis

distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMin liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe nicht leer ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionConnectionConnection

Alternativen

distance_rr_min_dildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDilDistanceRrMinDil, dilation1dilation1Dilation1Dilation1Dilation1, intersectionintersectionIntersectionIntersectionIntersection

Modul

Foundation