python中的坐标旋转scipy.spatial.transform.Rotation(草记)

#实操中学到的两种选转坐标的方式,随手记录一下#

scipy.spatial.transform.Rotation是一个坐标旋转工具,其中有多种方式进行旋转。scipy.spatial.transform.Rotation — SciPy v1.11.4 Manual

这里介绍两种方式from_mrp和from_euler

一、form_mrp

假设我们的关于一个轴进行旋转,使用向量a代表旋转轴的单位向量;旋转角度为θ

则mrp=a*tan(θ/4)  注:这里一定要注意1/4,这里的设置是为了刚性旋转,即旋转之后向量的模不变。

得到旋转矩阵r_mtrix=Rotation.from_mrp(mrp)

使用apply方法对向量b进行旋转 b_r=r_matrix.apply(b),b_r就是旋转后的向量。

实例: 

 

 python中的坐标旋转scipy.spatial.transform.Rotation(草记)_第1张图片

这里旋转轴a是沿着y轴的正方向,旋转角度为90°,b1和b2在y-o-z平面上,关于y轴旋转90°之后到x-o-z平面上。(此处旋转方向可以用右手定则理解,右手大拇指朝向Y轴正方向,四指握的方向就是旋转方向)

python中的坐标旋转scipy.spatial.transform.Rotation(草记)_第2张图片 

二、from_euler

这个方法更加直观,直接设置旋转轴和旋转角度即可。

直接上实例

python中的坐标旋转scipy.spatial.transform.Rotation(草记)_第3张图片

直接设置,沿x轴旋转0°,沿y轴旋转90°,沿z轴旋转0°,得到与form_mrp同样的效果。此处degrees=True代表着旋转角度使用度数。

你可能感兴趣的:(python日常,python,scipy,开发语言)