smallest_bounding_box_object_model_3dT_smallest_bounding_box_object_model_3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3d (Operator)
Name
smallest_bounding_box_object_model_3dT_smallest_bounding_box_object_model_3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3d
— Berechnen des kleinsten umschließenden Quaders eines 3D-Objektmodells.
Signatur
void SmallestBoundingBoxObjectModel3d(const HTuple& ObjectModel3D, const HTuple& Type, HTuple* Pose, HTuple* Length1, HTuple* Length2, HTuple* Length3)
static HPoseArray HObjectModel3D::SmallestBoundingBoxObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HString& Type, HTuple* Length1, HTuple* Length2, HTuple* Length3)
HPose HObjectModel3D::SmallestBoundingBoxObjectModel3d(const HString& Type, double* Length1, double* Length2, double* Length3) const
HPose HObjectModel3D::SmallestBoundingBoxObjectModel3d(const char* Type, double* Length1, double* Length2, double* Length3) const
HPose HObjectModel3D::SmallestBoundingBoxObjectModel3d(const wchar_t* Type, double* Length1, double* Length2, double* Length3) const
(Nur Windows)
static void HOperatorSet.SmallestBoundingBoxObjectModel3d(HTuple objectModel3D, HTuple type, out HTuple pose, out HTuple length1, out HTuple length2, out HTuple length3)
static HPose[] HObjectModel3D.SmallestBoundingBoxObjectModel3d(HObjectModel3D[] objectModel3D, string type, out HTuple length1, out HTuple length2, out HTuple length3)
HPose HObjectModel3D.SmallestBoundingBoxObjectModel3d(string type, out double length1, out double length2, out double length3)
Beschreibung
smallest_bounding_box_object_model_3dsmallest_bounding_box_object_model_3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3d
berechnet aus einem
3D-Objektmodell den kleinsten umschließenden Quader.
Das Ergebnis wird mit einer Pose und drei Längen beschrieben. Der Quader
wird über ein Koordinatensystem im Raum bestimmt (PosePosePosePosepose
), das
seine x-Achse entlang der längsten Seite des Quaders hat, die y-Achse
entlang der zweitlängsten Seite und die z-Achse entlang der drittlängsten
Seite.
Die Längen werden in den jeweiligen Parametern Length1Length1Length1Length1length1
,
Length2Length2Length2Length2length2
und Length3Length3Length3Length3length3
zurückgegeben.
Es gibt zwei verschiedene Berechnungsarten für den kleinsten umschließenden
Quader:
- 'oriented'"oriented""oriented""oriented""oriented":
Sucht nach einer Annäherung des kleinsten
orientierten umschließenden Quader. Die Berechnung ist vergleichsweise
aufwendig. Das entsprechende Verfahren ist randomisiert und kann daher
bei jedem Aufruf eine anderen orientierte umschließenden Quader
zurückliefern.
- 'axis_aligned'"axis_aligned""axis_aligned""axis_aligned""axis_aligned":
Bildet aus den maximalen Ausdehnungen des
3D-Objektmodells entlang der Koordinatenachsen einen umschließenden
Quader.
Um nur die Ecken des Quaders im Falle 'axis_aligned'"axis_aligned""axis_aligned""axis_aligned""axis_aligned" zu erhalten,
kann alternativ der Operator get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParamsGetObjectModel3dParams
mit dem
Parameter 'bounding_box1'"bounding_box1""bounding_box1""bounding_box1""bounding_box1" verwendet werden.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Parameter
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D
(input_control) object_model_3d(-array) →
HObjectModel3D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle der 3D-Objektmodelle, das 3D-Punkte
enthält.
TypeTypeTypeTypetype
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Methode zur Berechnung des Quaders.
Defaultwert:
'oriented'
"oriented"
"oriented"
"oriented"
"oriented"
Werteliste: 'axis_aligned'"axis_aligned""axis_aligned""axis_aligned""axis_aligned", 'oriented'"oriented""oriented""oriented""oriented"
PosePosePosePosepose
(output_control) pose(-array) →
HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Die errechnete Lage des Zentrums des Quaders
im Raum.
Length1Length1Length1Length1length1
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Die Länge der längsten Seite des Quaders
entlang der x-Achse der errechneten Pose.
Parameteranzahl: Length1 == ObjectModel3D
Length2Length2Length2Length2length2
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Die Länge der zweitlängsten Seite des Quaders
entlang der y-Achse der errechneten Pose.
Parameteranzahl: Length2 == ObjectModel3D
Length3Length3Length3Length3length3
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Die Länge der drittlängsten Seite des Quaders
entlang der z-Achse der errechneten Pose.
Parameteranzahl: Length3 == ObjectModel3D
Beispiel (HDevelop)
gen_object_model_3d_from_points (rand(20), rand(20), rand(20), \
ObjectModel3D)
smallest_bounding_box_object_model_3d (ObjectModel3D, 'oriented', \
Pose, Length1, Length2, Length3)
gen_box_object_model_3d (Pose, Length1, Length2, Length3, ObjectModel3D1)
dev_get_window (WindowHandle)
visualize_object_model_3d (WindowHandle, [ObjectModel3D,ObjectModel3D1], \
[], [], ['alpha_1'], [0.5], [], [], [], PoseOut)
Ergebnis
smallest_bounding_box_object_model_3dsmallest_bounding_box_object_model_3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3dSmallestBoundingBoxObjectModel3d
liefert den Wert 2 (H_MSG_TRUE) wenn alle
Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
connection_object_model_3dconnection_object_model_3dConnectionObjectModel3dConnectionObjectModel3dConnectionObjectModel3d
,
simplify_object_model_3dsimplify_object_model_3dSimplifyObjectModel3dSimplifyObjectModel3dSimplifyObjectModel3d
Nachfolger
gen_box_object_model_3dgen_box_object_model_3dGenBoxObjectModel3dGenBoxObjectModel3dGenBoxObjectModel3d
Siehe auch
smallest_sphere_object_model_3dsmallest_sphere_object_model_3dSmallestSphereObjectModel3dSmallestSphereObjectModel3dSmallestSphereObjectModel3d
Modul
3D Metrology