scipy.spatial.transform.Rotation.

随机#

classmethod Rotation.random(cls, num=None, random_state=None)#

生成均匀分布的旋转。

参数:
numint 或 None, 可选

要生成的随机旋转次数。如果为 None(默认),则生成一个旋转。

random_state{None, int,}

如果 seed 是 None(或 np.random),则使用 numpy.random.RandomState 单例。如果 seed 是 int,则使用新的 RandomState 实例,并以 seed 为种子。如果 seed 已经是 GeneratorRandomState 实例,则使用该实例。

返回:
random_rotation : Rotation 实例旋转实例

如果 num 为 None,则包含一个单一的旋转。否则包含 num 个旋转的堆栈。

注释

此函数针对在三维空间中高效采样随机旋转矩阵进行了优化。对于生成更高维度的随机旋转矩阵,请参见 scipy.stats.special_ortho_group

示例

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

采样单次旋转:

>>> R.random().as_euler('zxy', degrees=True)
array([-110.5976185 ,   55.32758512,   76.3289269 ])  # random

采样一组旋转:

>>> R.random(5).as_euler('zxy', degrees=True)
array([[-110.5976185 ,   55.32758512,   76.3289269 ],  # random
       [ -91.59132005,  -14.3629884 ,  -93.91933182],
       [  25.23835501,   45.02035145, -121.67867086],
       [ -51.51414184,  -15.29022692, -172.46870023],
       [ -81.63376847,  -27.39521579,    2.60408416]])