如何旋转对象以指向3d空间中的点?

时间:2017-01-15 03:09:56

标签: python algorithm pyglet

我目前无法在场景中旋转相机(使用python和pyglet)来指向相机的原点。我正在尝试制作一个围绕给定点(原点)旋转的相机,我将所有东西都工作但相机朝向原点旋转。

self.rot[0] = rad2deg(math.atan2(self.pos[1]-self.origin[0], self.pos[2]-self.origin[2]))
self.rot[1] = rad2deg(math.atan2((self.pos[0]-self.origin[0])*math.cos(deg2rad(self.rot[0])), self.pos[2]-self.origin[2]))
self.rot[2] = rad2deg(math.atan2(math.cos(deg2rad(self.rot[0])), math.sin(deg2rad(self.rot[0])) * math.sin(deg2rad(self.rot[1]))))

(自我是相机对象)

1 个答案:

答案 0 :(得分:0)

无需旋转相机。如果你知道相机和原点的相对位置,那么相机方向矢量就是负位置差

Cam.Direction = (Origin.X - Cam.X, Origin.Y - Cam.Y, Origin.Z -  Cam.Z).Normalized_If_Needed