VS2012下基于Glut 绘制立方体示例程序:

使用glBegin(GL_QUADS)绘制六个侧面来组成一个立方体;并使用glFrontFace(GL_CW)、glFrontFace(GL_CCW)来设置每个面的正面;使用glColor3ub来设置立方体每六个顶点的颜色。单击鼠标右键可以在弹出的菜单里面选择是否显示坐标轴以及是正视图还是透视视图。按键盘的UP、DOWN、LEFT、RIGHT按键可以从不同的角度查看该颜色立方体。


源代码:

// GlutColorCubeDemo.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <gl/glut.h>
#include <math.h>

//圆周率宏
#define GL_PI 3.1415f
//获取屏幕的宽度
GLint SCREEN_WIDTH=0;
GLint SCREEN_HEIGHT=0;
//设置程序的窗口大小
GLint windowWidth=400;
GLint windowHeight=300;
//绕x轴旋转角度
GLfloat xRotAngle=0.0f;
//绕y轴旋转角度
GLfloat yRotAngle=0.0f;
//受支持的点大小范围
GLfloat sizes[2];
//受支持的点大小增量
GLfloat step;
//最大的投影矩阵堆栈深度
GLint iMaxProjectionStackDepth;
//最大的模型视图矩阵堆栈深度
GLint iMaxModeviewStackDepth;
//最大的纹理矩阵堆栈深度
GLint iMaxTextureStackDepth;

GLint iCoordinateaxis=2;//是否显示坐标轴
GLint iProjectionMode=1;//投影模式
void changSize(GLint w,GLint h);

//菜单回调函数
void processMenu(int value){
	switch(value){
		case 1:
			iCoordinateaxis=1;
			break;
		case 2:
			iCoordinateaxis=2;
			break;
		case 3:
			iProjectionMode=1;
			//强制调用窗口大小变化回调函数,更改投影模式为正交投影
			changSize(glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT));
			break;
		case 4:
			iProjectionMode=2;
			//强制调用窗口大小变化回调函数,更改投影模式为透视投影
			changSize(glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT));
			break;
		default:
			break;
	}
	//重新绘制
	glutPostRedisplay();
}

//显示回调函数
void renderScreen(void){
	//将窗口颜色清理为黑色
	glClearColor
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值