读书人

opengl相机旋转的有关问题

发布时间: 2012-04-11 17:42:33 作者: rapoo

opengl相机旋转的问题


RT。。
gluLookAt要三个向量 位置,视线方向(暂时叫view),向上方向(叫做UP好了)。。。

现在我想定义 theta phi 角 控制 view 的旋转。。。两个角就可以让一个向量三维空间转个遍了

delta 控制up的旋转,view定下来之后 靠 delta角来控制UP向量的转动。view up始终垂直。

就是 view 按照 theta phi 旋转,UP也跟着旋转保持和view的位相不变,之后up按照顺时针绕着view这个轴旋转。

这个应该怎么做啊?

[解决办法]
看同学们给我的回复:

http://topic.csdn.net/u/20120229/12/30dfb0cd-1ef5-4a1c-a51d-86e69e0f42b5.html
[解决办法]

好象是楼主想让 围着有up和view叉乘产生的向量旋转 保持固定。

可以用Quaternion来计算新的view向量

举个例子,首先up是标准向量, 即长度为1, 旋转的角度theta, 需要旋转的空间的点 Lookat
那么新的Lookat' 的向量是
Lookat'= u*Lookat*u'

其中u是
u=cos(theta/2) + sin(theta/2)*up
u' 是把 虚部全乘以-1, 比如 1-x+3y+5z就变成了 1+x-3y-5z

这样就得到新的lookat’的空间的点, 带到opengl里就好了





读书人网 >图形图像

热点推荐