我想可视化旋转的多维数据集,我必须使用其坐标来完成。我只想知道我必须对所有坐标应用什么公式或函数 预先谢谢你
# coordinates
cube = np.array([
[0,0,0],
[1,0,0],
[1,1,0],
[0,1,0],
[0,0,0],
[0,0,1],
[1,0,1],
[1,1,1],
[0,1,1],
[0,0,1],
[1,0,1],
[1,0,0],
[1,1,0],
[1,1,1],
[0,1,1],
[0,1,0]
])
答案 0 :(得分:1)
只需将立方的齐次坐标矩阵与所需的旋转矩阵相乘即可。首先,我建议您使用Google搜索3D平移和旋转矩阵。假设您要绕Z轴旋转3D点P(1,0,0)和Q(2,0,0)角度theta度,则所需的python代码如下所示:
import numpy as np
import math
pointsMatrix=np.array([[1,2],[0,0],[0,0]])
R_z = np.array([[math.cos(theta), -math.sin(theta), 0],
[math.sin(theta), math.cos(theta), 0],
[0, 0, 1]
])
rotatedPoints=np.dot(R_z,pointsMatrix)
print("Rotated points \n",rotatedPoints)
如果要绕不同的轴旋转,请相应地使用旋转矩阵。如果上述解决方案对您有所帮助,请不要忘记投票赞成答案,这将极大地鼓舞我。