OpenGL制作会旋转的矩形
来源:互联网 发布:圆形头像制作软件 编辑:程序博客网 时间:2024/06/05 22:39
#include<Windows.h>
#include<GL\glut.h>
static GLfloat spin = 0.0;/*旋转度数*/
BOOL state = false;/*鼠标按键标志*/
static GLfloatroate = 2.99; /*旋转度数增量*/
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();/*矩阵压栈*/
glRotatef(spin, 0.0, 0.0, -1.0);/*绕着z轴旋转 每次旋转spin度 正:逆时针*/
glColor3f(1.0, 1.0, 1.0);
glRectf(-250.0, -250.0, 250.0, 250.0);/*画矩形 参数:对角线*/
glPopMatrix();/*矩阵出栈*/
glutSwapBuffers();/*双缓冲*/
}
void spinDisplay()
{
spin = spin + roate;
if (spin > 360.0)
{
spin = spin - 360.0;
}
glutPostRedisplay();/*每一次移动都显示到窗口中,如果没有就看不到动画,即每一次移动都调用一次display函数*/
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-350.0, 350.0, -350.0, 350.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void mouse(int button, int state, int x, int y)
{
switch(button)
{
case GLUT_LEFT_BUTTON:/*鼠标左键开始旋转*/
if (state == GLUT_UP);
glutIdleFunc(spinDisplay);
break;
case GLUT_RIGHT_BUTTON:/*鼠标右键停止旋转*/
if (state == GLUT_DOWN)
glutIdleFunc(NULL);
default:break;
}
}
void keybord(unsigned char key, int x, int y)
{
switch (key)
{
case 'f': /*按f开始旋转*/
glutIdleFunc(spinDisplay);/*在没有新的指令到达之前glutIdleFunction一直调用spinDisplay*/
break;
case 'd': /*按d停止旋转*/
glutIdleFunc(NULL);/*NULL禁用其函数回调*/
break;
case '-': /*减小旋转速度*/
roate--;
break;
case '+': /*增加旋转速度*/
roate++;
break;
default:
break;
}
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(600, 600);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keybord);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
0 0
- OpenGL制作会旋转的矩形
- opengl之双缓冲—旋转的矩形
- OpenGL学习记录——旋转矩形
- OpenGL中简单动画之矩形旋转
- [OpenGL] 制作一个有旋转动画的按钮
- 矩形旋转后的绘制
- opengl 制作 3D 彩色旋转三角形
- OpenGL 旋转的正方体
- [OpenGL]用OpenGL图形的绘制--矩形
- 会opengl的进
- 矩形旋转
- OpenGL 动画的制作
- OpenGL 动画的制作
- OpenGL显示旋转的sphere
- OpenGL旋转立方体的实现
- OpenGL 旋转的四棱锥
- 计算机图形学_矩形的旋转
- 圆与旋转矩形的碰撞检测
- 字符串训练 ----- UVA 10815题目Andy's First Dictionary
- 3042 迷之期望 SDUToj
- ubuntu14.04英文环境下安装搜狗中文输入法
- 用php实现在文件指定行插入数据的方法
- linux 内核 内存管理 slub算法原理
- OpenGL制作会旋转的矩形
- hihocoder1077 线段树
- 余凯在清华的讲座笔记
- 最小生成树hdu1233
- 子,字节,字长,位
- android studio 代理设置
- StartUML自动生成代码
- Android 去掉Power键按钮 锁屏界面 休眠时间
- 欧拉函数 hdu3501 Calculation 2