OpenGL利用键盘控制模型旋转

来源:互联网 发布:mac删除下载的软件 编辑:程序博客网 时间:2024/06/11 21:12

之前用OpenGL完成了STL模型的读入和显示,并且使用了旋转函数,将模型进行旋转显示。之后考虑通过键盘对模型进行旋转控制,能够更好的显示模型的整个细节。
首先定义键盘控制函数:

void SpecialKeys(int key, int x, int y) {    if (key == GLUT_KEY_UP) {        xRot_triangle += 5.0f;//通过调整等号右边的数字的大小,控制每点一次                      按键,模型旋转的角度。    }    if (key == GLUT_KEY_DOWN) {        xRot_triangle -= 5.0f;    }    if (key == GLUT_KEY_LEFT) {        yRot_triangle += 5.0f;    }    if (key==GLUT_KEY_RIGHT) {        yRot_triangle -= 5.0f;    }    if (xRot_triangle > 356.0f|| xRot_line > 356.0f) {        xRot_triangle = 0.0f;    }    if (xRot_triangle < -1.0f|| xRot_line<-1.0f) {        xRot_triangle = 355.0f;    }    if (yRot_triangle> 356.0f ||yRot_line > 356.0f) {        yRot_triangle = 0.0f;    }    if (yRot_triangle < -1.0f||yRot_line<-1.0f) {        yRot_triangle = 355.0f;    }    glutPostRedisplay();}

然后在内容显示函数内部,将旋转控制所需的矩阵函数写入。

void display(){......    glRotatef(xRot_triangle, 1.0f, 0.0f, 0.0f);    glRotatef(yRot_triangle, 0.0f, 1.0f, 0.0f);......}

然后在OpenGL的server处(比如主函数),发出键盘控制的指示。

glutSpecialFunc(SpecialKeys);

这样就可以通过键盘控制模型的旋转了。
参考书籍:
一周学通OpenGL(话说自己最不喜欢这种书,讲的很浅,但是很适合快速上手做一些小程序)

0 0