scipy.spatial.transform.Rotation.

approx_equal#

Rotation.approx_equal(other, atol=None, degrees=False)[source]#

确定另一个旋转是否近似等于此旋转。

相等性是通过计算旋转之间的最小角度来测量的,并检查它是否小于 atol

参数:
otherRotation 实例

包含要与此旋转进行测量对比的旋转的对象。

atolfloat, 可选

绝对角度容差,低于该值时,旋转被认为相等。如果未提供,则默认设置为 1e-8 弧度。

degreesbool, optional

如果为 True 且提供了 atol,则 atol 以度为单位测量。如果为 False(默认),则 atol 以弧度为单位测量。

返回:
approx_equalndarray 或 bool

旋转是否近似相等,如果对象包含单个旋转则为 bool,如果对象包含多个旋转则为 ndarray。

附注

数组 API 标准支持

approx_equal 对 Python Array API 标准兼容的后端具有实验性支持,除了 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
>>> p = R.from_quat([0, 0, 0, 1])
>>> q = R.from_quat(np.eye(4))
>>> p.approx_equal(q)
array([False, False, False, True])

单个旋转的近似相等性

>>> p.approx_equal(q[0])
False