mycpp.cpp

来自「Visual_C++.NET实用编程百例」· C++ 代码 · 共 75 行

CPP
75
字号
#include "windows.h"
#include "gl/gl.h"
#include "gl/glu.h"
#include "gl/glaux.h"

void myinit(void);
void CALLBACK display(void);
void CALLBACK reshape(GLsizei w,GLsizei h);
void CALLBACK stepDisplay(void);
void CALLBACK mousedown(AUX_EVENTREC *m);
void CALLBACK mouseup(AUX_EVENTREC *m);
static double zAngle=0.0;
void myinit(void)
{
	auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
	auxInitPosition(0,0,200,200);
	auxInitWindow("鼠标动画");
}
void CALLBACK reshape(GLsizei w,GLsizei h)
{
	if(w>h)
		glViewport(0,0,h,h);
	else
		glViewport(0,0,w,w);
}
void draw()
{
	glBegin(GL_TRIANGLE_STRIP);
	glColor3f(1.0,0.0,0.0);
	glVertex3f(0.8,-0.5,0.0);
	glColor3f(0.0,1.0,0.0);
	glVertex3f(-0.8,-0.5,0.0);
	glColor3f(0.0,0.0,1.0);
	glVertex3f(0.0,-0.8,0.8);
	glColor3f(0.0,1.0,1.0);
	glVertex3f(-0.6,0.8,-0.8);
	glColor3f(1.0,1.0,0.0);
	glVertex3f(0.8,-0.5,0.0);
	glEnd();
	glFlush();
}
void CALLBACK display(void)
{
	glClearColor(255.0,255.0,255.0,0.0);
	glClear(GL_COLOR_BUFFER_BIT);
	glLoadIdentity();
	glRotatef(zAngle,0.0,0.0,1.0);
	draw();
}
void CALLBACK stepDisplay(void)
{
	zAngle=zAngle+1;
	if(zAngle>360.0)
		zAngle=0.0;
	display();
    }
void CALLBACK mousedown(AUX_EVENTREC *m)
{
	//鼠标按下处理
	auxIdleFunc(stepDisplay);
}
void CALLBACK mouseup(AUX_EVENTREC *m)
{
	//鼠标抬起的处理
	auxIdleFunc(0);
}
void main(void)
{
	myinit();
	auxMouseFunc(AUX_LEFTBUTTON,AUX_MOUSEDOWN,mousedown);
	auxMouseFunc(AUX_LEFTBUTTON,AUX_MOUSEUP,mouseup);
	auxReshapeFunc(reshape);
	auxMainLoop(display);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?