资源简介
功能说明:
(1)绘制球体线框模型的透视投影图,使用背面剔除算法实现动态消隐;
(2)通过右键菜单显示消隐效果,右键菜单有两个选项:未消隐与消隐;
(3)使用键盘的上下左右控制键旋转消隐前后的球体;
(4)单击左键增加视距,右击缩短视距;
代码片段和文件信息
#include
#include
#define NO_XIAOYIN 1
#define XIAOYIN 2
static float a=1.0fb=0.0fc=0.0f;
GLfloat rtrir=1.0f;//旋转角度
bool bXiaoyin = true;
void init(void)
{
glClearColor(0.0f 0.0f 0.0f 0.0f);//背景色
glShadeModel(GL_SMOOTH);//设为smooth处理方式
glEnable(GL_DEPTH_TEST);//激活深度测试
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除颜色缓存和深度缓存
glLoadIdentity();
glTranslatef(-1.0f0.0f-4.0f);//控制球的位置和大小
glRotatef(rtriabc);//旋转
glColor3f(0.0f1.0f0.0f);//控制球的颜色
if(bXiaoyin)
glutWireSphere(r4530 ) ; //初始化线框球 球体围绕z轴分割45次球体沿着z轴分割30次
else
{
glDisable(GL_TEXTURE_2D);
glColorMask(0000);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glPolygonMode(GL_FRONT_AND_BACK GL_FILL);
glPolygonOffset(1.1f 4.0f);
glEnable (GL_POLYGON_OFFSET_FILL);
//auxSolidSphere(1.0);
glutSolidSphere (r 45 30 ) ;//实心球
glDisable (GL_POLYGON_OFFSET_FILL);
glColorMask(1 1 1 1);
glPolygonMode (GL_FRONT_AND_BACK GL_LINE);
//auxSolidSphere(1.0);
glutSolidSphere (r4530) ;
}
glutSwapBuffers();//交换双缓存
}
void reshape (int width int height)//对屏幕窗口的形状进行调整
{
glViewport(0 0 width height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f (GLfloat)width/(GLfloat)height 0.1f 100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void processMenuEvents(int option)//此函数处理根据菜单选项来执行的动作
{
switch (option) {
case 1:
bXiaoyin = true;
glutPostRedisplay();
break;
case 2:
bXiaoyin = false;
glutPostRedisplay();
break;
default:
break;
}
}
void createGLUTMenus()//创建菜单
{
int menu;
menu = glutCreateMenu(processMenuEvents);
glutAddMenuEntry(“消隐“XIAOYIN);//在菜单中添加选项
glutAddMenuEntry(“未消隐“NO_XIAOYIN);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void keyboard(unsigned char key int x int y) //键盘控制球体的缩放
{
switch (key)
{
case ‘o‘:
r+=0.1f;
glutPostRedisplay();
break;
case ‘i‘:
r-=0.1f;
glutPostRedisplay();
break;
case ‘x‘:
exit(0);
break;
default:
break;
}
}
void keyboard1(int keyint xint y)
{
switch(key)
{
case GLUT_KEY_LEFT://向左旋转
a=0.0f;
b=1.0f;
c=0.0f;
rtri-=2.0f;//减一个角度
glutPostRedisplay();//重画
break;
case GLUT_KEY_RIGHT://向右旋转
a=0.0f;
b=1.0f;
c=0.0f;
rtri+=2.0f;//加一个角度
glutPostRedisplay();//重画
break;
case GLUT_KEY_UP://向上旋转
a=1.0f;
b=0.0f;
c=0.0f;
rtri-=2.0f;
glutPostRedisplay();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 169984 1998-08-18 16:25 J07-01-03-王攀\GLUT\glut.dll
文件 21440 1998-08-18 16:24 J07-01-03-王攀\GLUT\glut.h
文件 79654 1998-08-18 16:25 J07-01-03-王攀\GLUT\glut.lib
文件 169984 1998-08-18 16:25 J07-01-03-王攀\GLUT\glut32.dll
文件 79898 1998-08-18 16:25 J07-01-03-王攀\GLUT\glut32.lib
文件 99328 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\vc60.idb
文件 53248 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\vc60.pdb
文件 245056 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\球体消隐.ilk
文件 188530 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\球体消隐.exe
文件 459776 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\球体消隐.pdb
文件 24922 2010-06-25 16:58 J07-01-03-王攀\球体背面消隐\Debug\0.obj
文件 332160 2010-06-27 22:17 J07-01-03-王攀\球体背面消隐\Debug\球体消隐.pch
文件 12799 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\Debug\球体消隐.obj
文件 50176 2010-06-30 12:40 J07-01-03-王攀\球体背面消隐\球体消隐.ncb
文件 756 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\球体消隐.plg
文件 345 2010-06-25 16:52 J07-01-03-王攀\球体背面消隐\球体消隐.sln
..A..H. 6656 2010-06-25 16:52 J07-01-03-王攀\球体背面消隐\球体消隐.suo
文件 3427 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\球体消隐.dsp
文件 4429 2010-06-30 12:25 J07-01-03-王攀\球体背面消隐\球体消隐.cpp
文件 48640 2010-06-30 12:40 J07-01-03-王攀\球体背面消隐\球体消隐.opt
文件 524 2010-06-30 12:40 J07-01-03-王攀\球体背面消隐\球体消隐.dsw
文件 259584 2011-04-18 22:08 J07-01-03-王攀\球体消隐课程设计报告.doc
目录 0 2010-06-27 00:41 J07-01-03-王攀\球体背面消隐\Debug
目录 0 2010-06-27 00:41 J07-01-03-王攀\GLUT
目录 0 2010-06-27 00:41 J07-01-03-王攀\球体背面消隐
目录 0 2010-06-27 00:41 J07-01-03-王攀
----------- --------- ---------- ----- ----
2311316 26
相关资源
- G.729的实现代码
- 东方电子DF9300通讯管理机包含规约:
- opencv检查图片中是否有人
- glaux系列包
- 无向连通图最小生成树
- 设计一个模拟计算器的程序,要求能
- 三次样条函数插值实现(第二边界条
- 太阳天顶角计算工具
- TDI驱动源代码
- KinectSDK2.0面部获取
- 种子填充算法VC程序.rar
- 实现了异常管理流程QtSharpCore.zip
- VC编写的简单聊天程序
- 利用USB虚拟总线驱动模拟USB摄像头的
- C经典教材-C和指针课后习题答案
- Poco:TCPServer框架
- 基于开源库tufao,一个C + +的异步 We
- jsoncpp-1.9.3-win64-mingw.zip
- 基于图片信息的相机内参获取
- 计算机操作系统实验代码6个实验
- c 程序设计谭浩强课后习题答案 完整
- QT项目源码
- visual studio 2017中英文企业版离线安装
- visual studio 2019中英文企业版离线安装
- Unicode编码与汉字互转.rar
- 说话人识别完整源码 vs2010
- opencv实现车辆速度检测.rar
- 米字格.pdf
- easysize_demo.zip
- SWMM51014代码编译及扩展案例
评论
共有 条评论