Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import math | |
| import scipy.linalg as linalg | |
| def rotate_mat(axis, radian): | |
| a = np.cross(np.eye(3), axis / linalg.norm(axis) * radian) | |
| rot_matrix = linalg.expm(a) | |
| return rot_matrix | |
| def aaa2mat(axis, sin, cos): | |
| i = np.eye(3) | |
| nnt = np.dot(axis.T, axis) | |
| s = np.asarray([[0, -axis[0,2], axis[0,1]], | |
| [axis[0,2], 0, -axis[0,0]], | |
| [-axis[0,1], axis[0,0], 0]]) | |
| r = cos * i + (1-cos)*nnt +sin * s | |
| return r | |
| rand_axis = np.asarray([[1,0,0]]) | |
| #旋转角度 | |
| r = math.pi/2 | |
| #返回旋转矩阵 | |
| rot_matrix = rotate_mat(rand_axis, r) | |
| r2 = aaa2mat(rand_axis, np.sin(r), np.cos(r)) | |
| print(rot_matrix) |