第一步,旋转的六边形
源码:
#include <math.h>
#include <Windows.h>
#include <gl\glut.h>
#include <stdlib.h>
#define PI 3.14159 //设置圆周率
int n = 6, R = 10; //多边形变数,外接圆半径
float theta = 0.0; //旋转初始角度值
//绘制正六边形
void Display(void)
{
glClearColor(1, 1, 1, 0);//设置白色绘图背景颜色(清屏颜色)
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0, 0, 1); //设置深蓝色绘图颜色
glBegin(GL_POLYGON); //开始绘制六边形
for (int i = 0; i < n; i++)
glVertex2f(R * cos(theta + i * 2 * PI / n), R * sin(theta + i * 2 * PI / n));
glEnd();
glutSwapBuffers(); //双缓冲的刷新模式;
}
//旋转
void myidle()
{
theta += 1; //旋转角度增加1度
if (theta >= 2 * PI) {
theta -= 2 * PI; //如果旋转角度大于360度,则复原
}
glutPostRedisplay(); //重画,相当于重新调用Display(),改编后的变量得以传给绘制函数
}
void Reshape(GLsizei w, GLsizei h)
{
glMatrixMode(GL_PROJECTION); //投影矩阵模式
glL