KlassenKlassenKlassenKlassen | | | | Operatoren

dual_quat_interpolateT_dual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate (Operator)

Name

dual_quat_interpolateT_dual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate — Interpolation von zwei dualen Quaternionen.

Signatur

dual_quat_interpolate( : : DualQuaternionStart, DualQuaternionEnd, InterpPos : DualQuaternionInterpolated)

Herror T_dual_quat_interpolate(const Htuple DualQuaternionStart, const Htuple DualQuaternionEnd, const Htuple InterpPos, Htuple* DualQuaternionInterpolated)

Herror dual_quat_interpolate(const HTuple& DualQuaternionStart, const HTuple& DualQuaternionEnd, const HTuple& InterpPos, HTuple* DualQuaternionInterpolated)

void DualQuatInterpolate(const HTuple& DualQuaternionStart, const HTuple& DualQuaternionEnd, const HTuple& InterpPos, HTuple* DualQuaternionInterpolated)

HDualQuaternionArray HDualQuaternion::DualQuatInterpolate(const HDualQuaternion& DualQuaternionEnd, const HTuple& InterpPos) const

HDualQuaternion HDualQuaternion::DualQuatInterpolate(const HDualQuaternion& DualQuaternionEnd, double InterpPos) const

void HOperatorSetX.DualQuatInterpolate(
[in] VARIANT DualQuaternionStart, [in] VARIANT DualQuaternionEnd, [in] VARIANT InterpPos, [out] VARIANT* DualQuaternionInterpolated)

IHDualQuaternionX* HDualQuaternionX.DualQuatInterpolate(
[in] IHDualQuaternionX* DualQuaternionEnd, [in] VARIANT InterpPos)

static void HOperatorSet.DualQuatInterpolate(HTuple dualQuaternionStart, HTuple dualQuaternionEnd, HTuple interpPos, out HTuple dualQuaternionInterpolated)

HDualQuaternion[] HDualQuaternion.DualQuatInterpolate(HDualQuaternion dualQuaternionEnd, HTuple interpPos)

HDualQuaternion HDualQuaternion.DualQuatInterpolate(HDualQuaternion dualQuaternionEnd, double interpPos)

Beschreibung

Der Operator dual_quat_interpolatedual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate interpoliert zwischen den beiden dualen Quaternionen DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart und DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd an der Position InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos.

Eine kurze Einführung in duale Quaternionen, die verwendete Notation und die Beziehung zwischen dualen Quaternionen und Schraubungen findet sich in der Dokumentation zu diesem Kapitel (Transformationen / Duale Quaternionen).

Für Interpolationen muss InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos innerhalb des Intervalls liegen, wenngleich auch Werte außerhalb dieses Intervalls möglich sind. Letzteres entspricht dann einer Extrapolation. Im Fall InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos=0 entspricht die interpolierte duale Quaternion DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated dem Startpunkt DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart der Interpolation. Im Fall InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos=1 entspricht DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated dem Endpunkt DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd der Interpolation.

Die Interpolation wird durch eine lineare Schraubungsinterpolation (screw linear interpolation, ScLERP) durchgeführt. Sind sowohl DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart als auch DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd duale Einheitsquaternionen, so ist auch DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated eine duale Einheitsquaternion. dual_quat_interpolatedual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate kann also dazu verwendet werden, um weich zwischen zwei starren 3D-Abbildungen zu interpolieren.

Die Interpolation des Rotationsanteils zwischen DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart und DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd ist identisch zur Interpolation von Quaternionen, d.h. der Schraubungswinkel wird linear interpoliert (siehe quat_interpolatequat_interpolateQuatInterpolatequat_interpolateQuatInterpolateQuatInterpolate). Die Interpolation des Translationsanteils erfolgt durch die lineare Interpolation der Translation der Schraubung.

Es ist möglich, für InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos ein Tupel mit mehreren Werten zu übergeben. In diesem Fall wird in DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated für jeden Wert in InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos eine interpolierte duale Quaternion zurückgegeben. Dies ist effizienter als dual_quat_interpolatedual_quat_interpolateDualQuatInterpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolate mehrfach mit einem einzelnen Wert für InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos aufzurufen.

Parallelisierung

Parameter

DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHTupleHDualQuaternionX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Duale Quaternion als Startpunkt der Interpolation.

DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHTupleHDualQuaternionX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Duale Quaternion als Endpunkt der Interpolation.

InterpPosInterpPosInterpPosInterpPosInterpPosinterpPos (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Interpolationsparameter.

Defaultwert: 0.5

Wertevorschläge: 0.0, 0.25, 0.5, 0.75, 1.0

DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated (output_control)  dual_quaternion(-array) HDualQuaternion, HTupleHTupleHTupleHDualQuaternionX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Interpolierte duale Quaternion.

Vorgänger

pose_to_dual_quatpose_to_dual_quatPoseToDualQuatpose_to_dual_quatPoseToDualQuatPoseToDualQuat, screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatscrew_to_dual_quatScrewToDualQuatScrewToDualQuat, dual_quat_normalizedual_quat_normalizeDualQuatNormalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalize

Nachfolger

dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3d, dual_quat_to_posedual_quat_to_poseDualQuatToPosedual_quat_to_poseDualQuatToPoseDualQuatToPose, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewdual_quat_to_screwDualQuatToScrewDualQuatToScrew

Siehe auch

dual_quat_composedual_quat_composeDualQuatComposedual_quat_composeDualQuatComposeDualQuatCompose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugate, serialize_dual_quatserialize_dual_quatSerializeDualQuatserialize_dual_quatSerializeDualQuatSerializeDualQuat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3d, quat_interpolatequat_interpolateQuatInterpolatequat_interpolateQuatInterpolateQuatInterpolate

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren