opengl中关于角度的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:35:05
怎么用glTranslatef(-);glRotatef();函数实现物体绕自己的中心转啊 我做了一个魔方
gluLookAt(1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0);
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
for (k=0;k<3;k++)
{
glLoadIdentity();
glTranslatef(-0.75+i*0.5,0.75-j*0.5,-6.0+k*0.5);
glRotatef(rtri,0.0f,1.0f,0.0f);
polygon(-0.75,0.0,-2.0,0.5,0.5,0.5);//这个是我自己写的绘制正方体的函数,前面三个参数是其中一个点的坐标,后面三个是长宽高的参数。
}
}
}

然后我写了用键盘来控制角度rtri的大小 但是不是绕着立方体的中心转啊,一转就出现了很大范围的旋转~~我很郁闷啊~~到底OpenGL里的角度是怎么设定啊~回答满意的追加100分~!!!

学3D的都知道画面卡不一定就是配置问题,跟程序本身也有关系,跑跑这个游戏在转弯的时候程序会用一个旋转函数来旋转场景,每毫秒旋转0.1的角度,如果每次旋转的角度定义的太大就会出现有点卡的现象。
劲舞这个游戏是用opengl做的,A卡对opengl的支持很差劲是业界都知道的。跑同样的opengl游戏N卡的效率是A卡的3倍还多。

[绕世界中心旋转矩阵]=[移动矩阵(或原有矩阵)]*[旋转矩阵]
[绕自身旋转矩阵]=[旋转矩阵]*[移动矩阵(或原有矩阵)]

glPush
glRotate
glTransform
glPop

Hope it is right:)

学3D的都知道画面卡不一定就是配置问题,跟程序本身也有关系,跑跑这个游戏在转弯的时候程序会用一个旋转函数来旋转场景,每毫秒旋转0.1的角度,如果每次旋转的角度定义的太大就会出现有点卡的现象。