scipy.spatial.transform.Rotation.

from_rotvec#

static Rotation.from_rotvec(rotvec, degrees=False)[source]#

从旋转向量初始化。

旋转向量是一个三维向量,其方向与旋转轴同向,其范数给出旋转角度 [1]

参数:
rotvecarray_like, shape (…, 3)

单个向量或 ND 数组的向量,其中最后一个维度包含旋转向量。

degreesbool, optional

如果为 True,则假定给定的幅度以度为单位。默认值为 False。

版本 1.7.0 中新增。

返回:
rotationRotation 实例

包含由输入旋转向量表示的旋转的对象。

附注

数组 API 标准支持

from_rotvec 对 Python Array API Standard 兼容的后端具有实验性支持,除了 NumPy 之外。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

不适用

有关更多信息,请参阅 对数组 API 标准的支持

参考文献

示例

>>> from scipy.spatial.transform import Rotation as R
>>> import numpy as np

初始化单个旋转

>>> r = R.from_rotvec(np.pi/2 * np.array([0, 0, 1]))
>>> r.as_rotvec()
array([0.        , 0.        , 1.57079633])
>>> r.as_rotvec().shape
(3,)

以度为单位初始化旋转,并以度为单位查看它

>>> r = R.from_rotvec(45 * np.array([0, 1, 0]), degrees=True)
>>> r.as_rotvec(degrees=True)
array([ 0., 45.,  0.])

在一个对象中初始化多个旋转

>>> r = R.from_rotvec([
... [0, 0, np.pi/2],
... [np.pi/2, 0, 0]])
>>> r.as_rotvec()
array([[0.        , 0.        , 1.57079633],
       [1.57079633, 0.        , 0.        ]])
>>> r.as_rotvec().shape
(2, 3)

也可以有一个单个旋转的堆栈

>>> r = R.from_rotvec([[0, 0, np.pi/2]])
>>> r.as_rotvec().shape
(1, 3)