在OpenGL中转向路径

时间:2010-12-08 04:26:53

标签: opengl 3d rotation

基于OpenGL旋转函数glRotatef(..),我在如何在3D空间中旋转对象时遇到了麻烦。

glRotatef ( angle , x , y , z )

我的物体在3D空间中从一个点移动到另一个点。我希望我的物体沿着它行进的方向旋转。

如果我知道我正在开始的点和我要完成的点,我如何找到glRotatef(...)函数所需的角度x,y,z。

2 个答案:

答案 0 :(得分:1)

gluLookAt功能完全您需要的功能。它将使您无需手动计算轴和角度。

答案 1 :(得分:0)

非常粗略地说,你需要的是得到旋转轴,这对于行进方向和表面法线都是正常的,这意味着行进方向(T)和表面法线的交叉积( n)会给你一个旋转轴。因此轴(A)将是:

A = norm(T x n)或者A = norm(n x T),其中一个将允许你使用正角度来向右方向“旋转”。

然而,需要根据您使用的上述哪一个来分析旋转角度的正面或负面特性,但这应该让您从旋转轴开始:)