計算空間三維座標系變換一般都是利用旋轉矩陣或者尤拉公式。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...