dual_quat_interpolateT_dual_quat_interpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate (Operator)

Name

dual_quat_interpolateT_dual_quat_interpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate — 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)

def dual_quat_interpolate(dual_quaternion_start: Sequence[float], dual_quaternion_end: Sequence[float], interp_pos: MaybeSequence[float]) -> Sequence[float]

Beschreibung

Der Operator dual_quat_interpolatedual_quat_interpolateDualQuatInterpolateDualQuatInterpolateDualQuatInterpolatedual_quat_interpolate interpoliert zwischen den beiden dualen Quaternionen DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStartdual_quaternion_start und DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnddual_quaternion_end an der Position InterpPosInterpPosInterpPosInterpPosinterpPosinterp_pos.

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

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

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

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

Ausführungsinformationen

Parameter

DualQuaternionStartDualQuaternionStartDualQuaternionStartDualQuaternionStartdualQuaternionStartdual_quaternion_start (input_control)  dual_quaternion HDualQuaternion, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Duale Quaternion als Startpunkt der Interpolation.

DualQuaternionEndDualQuaternionEndDualQuaternionEndDualQuaternionEnddualQuaternionEnddual_quaternion_end (input_control)  dual_quaternion HDualQuaternion, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Duale Quaternion als Endpunkt der Interpolation.

InterpPosInterpPosInterpPosInterpPosinterpPosinterp_pos (input_control)  real(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Interpolationsparameter.

Defaultwert: 0.5

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

DualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolatedDualQuaternionInterpolateddualQuaternionInterpolateddual_quaternion_interpolated (output_control)  dual_quaternion(-array) HDualQuaternion, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Interpolierte duale Quaternion.

Vorgänger

pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatPoseToDualQuatpose_to_dual_quat, screw_to_dual_quatscrew_to_dual_quatScrewToDualQuatScrewToDualQuatScrewToDualQuatscrew_to_dual_quat, dual_quat_normalizedual_quat_normalizeDualQuatNormalizeDualQuatNormalizeDualQuatNormalizedual_quat_normalize

Nachfolger

dual_quat_to_hom_mat3ddual_quat_to_hom_mat3dDualQuatToHomMat3dDualQuatToHomMat3dDualQuatToHomMat3ddual_quat_to_hom_mat3d, dual_quat_to_posedual_quat_to_poseDualQuatToPoseDualQuatToPoseDualQuatToPosedual_quat_to_pose, dual_quat_to_screwdual_quat_to_screwDualQuatToScrewDualQuatToScrewDualQuatToScrewdual_quat_to_screw

Siehe auch

dual_quat_composedual_quat_composeDualQuatComposeDualQuatComposeDualQuatComposedual_quat_compose, dual_quat_conjugatedual_quat_conjugateDualQuatConjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugate, serialize_dual_quatserialize_dual_quatSerializeDualQuatSerializeDualQuatSerializeDualQuatserialize_dual_quat, deserialize_dual_quatdeserialize_dual_quatDeserializeDualQuatDeserializeDualQuatDeserializeDualQuatdeserialize_dual_quat, dual_quat_trans_line_3ddual_quat_trans_line_3dDualQuatTransLine3dDualQuatTransLine3dDualQuatTransLine3ddual_quat_trans_line_3d, quat_interpolatequat_interpolateQuatInterpolateQuatInterpolateQuatInterpolatequat_interpolate

Modul

Foundation