python實現三維座標旋轉計算

2021-10-17 12:18:21 字數 1370 閱讀 9736

計算空間三維座標系變換一般都是利用旋轉矩陣或者尤拉公式。python有個scipy庫可以直接用於計算空間三維座標變換。

pip install scipy
axis是旋轉軸,radian旋轉角度(弧度)

rot_matrix = linalg.expm(np.cross(np.eye(3)

, axis / linalg.norm(axis)

* radian)

)

rot_matrix是旋轉矩陣,x是座標陣列[x,y,z]

np.dot(rot_matrix,x)
import numpy as np

import math

import scipy.linalg as linalg

import matplotlib as mpl

from mpl_toolkits.mplot3d import axes3d

import matplotlib.pyplot as plt

#旋轉矩陣 尤拉角

defrotate_mat

(axis, radian)

: rot_matrix = linalg.expm(np.cross(np.eye(3)

, axis / linalg.norm(axis)

* radian)

)return rot_matrix

# 分別是x,y和z軸,也可以自定義旋轉軸

axis_x, axis_y, axis_z =[1

,0,0

],[0

,1,0

],[0

,0,1

]rand_axis =[0

,0,1

]#旋轉角度

yaw = math.pi/

180#返回旋轉矩陣

rot_matrix = rotate_mat(rand_axis, yaw)

print

(rot_matrix)

# 計算點繞著軸運動後的點

x =[

-1010

,105.43,-

244]

x1 = np.dot(rot_matrix,x)

# 旋轉後的座標

print

(x1)

# 計算各軸偏移量

三維座標 偏轉 三維座標下的旋轉

三維座標的旋轉有以下幾種常見的表示形式 旋轉向量,旋轉矩陣,尤拉角,四元數,下面對這四種表示形式及其之間的轉換進行介紹 旋轉向量 通常為3x1的列向量,向量方向即為旋轉軸,向量的模表示繞軸逆時針旋轉的角度,如旋轉向量v a,b,c 那麼旋轉角度theta sqrt a2 b2 c2 旋轉軸z a t...

python三維座標 python中三維輪廓的座標

感謝在這個 上獲得的知識。我能寫乙個簡單的指令碼,列印出等高線圖的座標 x和y 在 下面是乙個例子 from numpy import from pylab import generate a set of random points npts 500 phi random npts 2 pi th...

二維,三維座標旋轉演算法 公式)

本文是有關二維,三維座標旋轉演算法筆記。二維座標旋轉。二維座標旋轉公式圖下 void rotate2 double x1,double y1,double alpha,double x2,double y2 x2 x1 cos alpha y1 sin alpha y2 x1 sin alpha y...