本文简要介绍 python 语言中 scipy.spatial.transform.Slerp
的用法。
用法:
class scipy.spatial.transform.Slerp(times, rotations)#
旋转的球面线性插值。
连续旋转之间的插值是作为围绕具有恒定角速度的固定轴的旋转执行的 [1]。这确保了插值旋转遵循初始方向和最终方向之间的最短路径。
- times: 数组, 形状 (N,)
已知旋转次数。必须指定至少 2 次。
- rotations:
Rotation
实例 旋转之间执行插值。必须包含 N 个旋转。
参数 ::
注意:
参考:
例子:
>>> from scipy.spatial.transform import Rotation as R >>> from scipy.spatial.transform import Slerp
设置固定的关键帧旋转和时间:
>>> key_rots = R.random(5, random_state=2342345) >>> key_times = [0, 1, 2, 3, 4]
创建插值器对象:
>>> slerp = Slerp(key_times, key_rots)
在给定时间插入旋转:
>>> times = [0, 0.5, 0.25, 1, 1.5, 2, 2.75, 3, 3.25, 3.60, 4] >>> interp_rots = slerp(times)
以欧拉角表示的关键帧旋转:
>>> key_rots.as_euler('xyz', degrees=True) array([[ 14.31443779, -27.50095894, -3.7275787 ], [ -1.79924227, -24.69421529, 164.57701743], [146.15020772, 43.22849451, -31.34891088], [ 46.39959442, 11.62126073, -45.99719267], [-88.94647804, -49.64400082, -65.80546984]])
以欧拉角表示的插值旋转。这些与关键帧时间范围的两个端点处的关键帧旋转一致。
>>> interp_rots.as_euler('xyz', degrees=True) array([[ 14.31443779, -27.50095894, -3.7275787 ], [ 4.74588574, -32.44683966, 81.25139984], [ 10.71094749, -31.56690154, 38.06896408], [ -1.79924227, -24.69421529, 164.57701743], [ 11.72796022, 51.64207311, -171.7374683 ], [ 146.15020772, 43.22849451, -31.34891088], [ 68.10921869, 20.67625074, -48.74886034], [ 46.39959442, 11.62126073, -45.99719267], [ 12.35552615, 4.21525086, -64.89288124], [ -30.08117143, -19.90769513, -78.98121326], [ -88.94647804, -49.64400082, -65.80546984]])
相关用法
- Python SciPy transform.RotationSpline用法及代码示例
- Python SciPy transform.Rotation用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy ClusterNode.pre_order用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy FortranFile.read_record用法及代码示例
- Python SciPy ndimage.correlate用法及代码示例
- Python SciPy special.exp1用法及代码示例
- Python SciPy special.expn用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy ndimage.morphological_gradient用法及代码示例
- Python SciPy distance.sokalmichener用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy csc_array.diagonal用法及代码示例
- Python SciPy fft.idctn用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy hierarchy.ward用法及代码示例
- Python SciPy signal.chirp用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy ndimage.variance用法及代码示例
- Python SciPy signal.residue用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.spatial.transform.Slerp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。