scipy.spatial.transform.RigidTransform.

identity#

classmethod RigidTransform.identity(cls, num=None)#

初始化一个单位变换。

与单位变换的组合没有效果,将单位变换应用于向量也没有效果。

参数:
numint, 可选

要生成的单位变换的数量。如果为 None(默认值),则生成单个变换。

返回:
transformRigidTransform 实例

单位变换。

示例

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

创建一个单位变换

>>> tf = Tf.identity()
>>> tf.as_matrix()
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])
>>> tf.single
True

单位变换可以应用于向量而没有效果

>>> tf.apply([1, 2, 3])
array([1., 2., 3.])

单位变换与另一个变换组合时没有效果

>>> rng = np.random.default_rng()
>>> t = rng.random(3)
>>> r = R.random(rng=rng)
>>> tf = Tf.from_components(t, r)
>>> np.allclose((Tf.identity() * tf).as_matrix(),
...             tf.as_matrix(), atol=1e-12)
True

可以一次生成多个单位变换

>>> tf = Tf.identity(2)
>>> tf.as_matrix()
array([[[1., 0., 0., 0.],
        [0., 1., 0., 0.],
        [0., 0., 1., 0.],
        [0., 0., 0., 1.]],
       [[1., 0., 0., 0.],
        [0., 1., 0., 0.],
        [0., 0., 1., 0.],
        [0., 0., 0., 1.]]])
>>> tf.single
False
>>> len(tf)
2