如何制作具有重心和对象尺寸的3D长方体

时间:2019-05-17 09:15:16

标签: python

如何使用python 3.6来使包裹或盒子的位置和方向与包裹的质心和尺寸以及四元数(数量为4)(例如q1,q2,q3,q4)匹配?例如:质心=(x,y,z)=(1.1,-0.3,0.4);长= 40cm,宽= 30cm,宽= 10cm;四元数q1 = 1.011; q2 = 2.022; q3 = 1.09; q4 = -0.09

` 将numpy导入为np 导入matplotlib.pyplot作为plt 从mpl_toolkits.mplot3d导入Axes3D 从ipywidgets导入交互 从IPython.html导入小部件

这里a,b,c,d是四元数

def normQ(a,b,c,d):     '''计算归一化四元数     一个是真正的部分     b,c,d是复杂元素'''

# Betrag
Z = np.sqrt(a**2+b**2+c**2+d**2)

if Z!=0.0:
    return np.array([a/Z,b/Z,c/Z,d/Z])
else:
    return np.array([0.0,0.0,0.0,0.0])

def Q2Eul(a,b,c,d):     '''根据四元数计算欧拉角     一个是真正的部分     b,c,d是复杂元素'''

a,b,c,d = normQ(a,b,c,d)


gieren = np.arctan2(2.0*(b*c+a*d),(a**2+b**2-c**2-d**2)) * 180.0/np.pi
nicken = np.arcsin(2.0*(a*c-b*d)) * 180.0/np.pi
wanken = -np.arctan2(2.0*(c*d+a*b),-(a**2-b**2-c**2+d**2)) * 180.0/np.pi

return np.array([gieren, nicken, wanken])`
############我想根据这些角度旋转3D物体,即gieren,nicken,wanken

0 个答案:

没有答案