dual_quat_interpolateT_dual_quat_interpolateDualQuatInterpolateDualQuatInterpolate (Operator)

Name

dual_quat_interpolateT_dual_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)

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

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_interpolateDualQuatInterpolateDualQuatInterpolateDualQuatInterpolate interpoliert zwischen den beiden dualen Quaternionen DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart und DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd an der Position InterpPosInterpPosInterpPosInterpPosinterpPos.

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 InterpPosInterpPosInterpPosInterpPosinterpPos innerhalb des Intervalls liegen, wenngleich auch Werte außerhalb dieses Intervalls möglich sind. Letzteres entspricht dann einer Extrapolation. Im Fall InterpPosInterpPosInterpPosInterpPosinterpPos=0 entspricht die interpolierte duale Quaternion DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated dem Startpunkt DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart der Interpolation. Im Fall InterpPosInterpPosInterpPosInterpPosinterpPos=1 entspricht DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated dem Endpunkt DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd der Interpolation.

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

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

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

Ausführungsinformationen

Parameter

DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStart (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHtuple (real) (double) (double) (double)

Duale Quaternion als Startpunkt der Interpolation.

DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnd (input_control)  dual_quaternion HDualQuaternion, HTupleHTupleHtuple (real) (double) (double) (double)

Duale Quaternion als Endpunkt der Interpolation.

InterpPosInterpPosInterpPosInterpPosinterpPos (input_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Interpolationsparameter.

Defaultwert: 0.5

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

DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolated (output_control)  dual_quaternion(-array) HDualQuaternion, HTupleHTupleHtuple (real) (double) (double) (double)

Interpolierte duale Quaternion.

Vorgänger

pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatPoseToDualQuat, screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatScrewToDualQuat, dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizeDualQuatNormalize

Nachfolger

dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3dDualQuatToHomMat3d, dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPoseDualQuatToPose, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewDualQuatToScrewDualQuatToScrew

Siehe auch

dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposeDualQuatCompose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugateDualQuatConjugate, serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatSerializeDualQuat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatDeserializeDualQuat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3dDualQuatTransLine3d, quat_interpolatequat_interpolateQuatInterpolateQuatInterpolateQuatInterpolate

Modul

Foundation