shape_transshape_transShapeTransShapeTrans (Operator)
Name
shape_transshape_transShapeTransShapeTrans
— Transformieren der Form von Regionen.
Signatur
Beschreibung
shape_transshape_transShapeTransShapeTransShapeTrans
dient zur Transformation der Form von
Regionen in Abhängigkeit von TypeTypeTypeTypetype
:
- 'convex'
Konvexe Hülle.
- 'ellipse'
Ellipse mit den gleichen Momenten und Fläche wie die
Eingaberegion
- 'outer_circle'
Kleinster umschließender Kreis.
- 'inner_circle'
Größter Inkreis.
- 'rectangle1'
Kleinstes umschließendes Rechteck parallel zu den Koordinatenachsen.
- 'rectangle2'
Kleinstes umschließendes Rechteck.
- 'inner_rectangle1'
Größtes enthaltenes achsenparalleles Rechteck.
- 'inner_center'
Liefert als Ausgaberegion den Punkt auf dem Skelett der
Eingaberegion, der am nächsten zum Schwerpunkt der Eingaberegion
liegt.
Achtung
Für den Fall TypeTypeTypeTypetype
= 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle" ist zu
beachten, dass die zurückgegebene Kreisregion die ursprüngliche
Region in manchen Fällen nicht komplett beinhaltet. Dies liegt
daran, dass intern die Operatoren smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
und
gen_circlegen_circleGenCircleGenCircleGenCircle
aufgerufen werden. Wie in der Dokumentation von
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
beschrieben, kann der berechnete Radius bis
zu Pixel zu klein
sein. Zusätzlich kommt hinzu, dass der mit gen_circlegen_circleGenCircleGenCircleGenCircle
generierte Kreis bis zu 0.5 Pixel in beide Richtungen also um
maximal Pixel verschoben wird. Insgesamt
kann die ursprüngliche Region also um bis zu 1 Pixel über die
zurückgegebene Kreisregion hinausragen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Parameter
RegionRegionRegionRegionregion
(input_object) region(-array) →
objectHRegionHRegionHobject
Regionen, die transformiert werden.
RegionTransRegionTransRegionTransRegionTransregionTrans
(output_object) region(-array) →
objectHRegionHRegionHobject *
Transformierte Regionen.
TypeTypeTypeTypetype
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Art der Transformation.
Defaultwert:
'convex'
"convex"
"convex"
"convex"
"convex"
Werteliste: 'convex'"convex""convex""convex""convex", 'ellipse'"ellipse""ellipse""ellipse""ellipse", 'inner_center'"inner_center""inner_center""inner_center""inner_center", 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle", 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1", 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle", 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2"
Komplexität
Sei F die Fläche einer Eingaberegion, dann ist die
Laufzeitkomplexität O(F).
Ergebnis
shape_transshape_transShapeTransShapeTransShapeTrans
liefert den Wert 2 (H_MSG_TRUE), falls die
Parameterwerte korrekt sind. Das Verhalten bei leerer Eingabe
(keine Eingaberegionen vorhanden) lässt sich mittels
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
connectionconnectionConnectionConnectionConnection
,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing
Nachfolger
disp_regiondisp_regionDispRegionDispRegionDispRegion
,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanRegiongrowingMeanRegiongrowingMean
,
area_centerarea_centerAreaCenterAreaCenterAreaCenter
Siehe auch
convexityconvexityConvexityConvexityConvexity
,
elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxis
,
area_centerarea_centerAreaCenterAreaCenterAreaCenter
,
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1
,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2
,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1
,
set_shapeset_shapeSetShapeSetShapeSetShape
,
select_shapeselect_shapeSelectShapeSelectShapeSelectShape
,
inner_circleinner_circleInnerCircleInnerCircleInnerCircle
Modul
Foundation