资源简介
广东工业大学计算机图形学实验.rar 供实验参考!
代码片段和文件信息
// Demo of OpenGL Transforms
#include
#include
#include
static int width height; // 窗口尺寸
static bool wireframe = false; // 线框渲染模式标志
static bool projective = true; // 透视投影标志
static bool left_btn_down = false; // 鼠标左键按下标志
static bool rotate_scene = false; // 旋转场景标志
static GLfloat rot_x = 0.0f; // 摄像机x轴旋转量
static GLfloat rot_y = 0.0f; // 摄像机y轴旋转量
static GLfloat spin = 0.0; // 公转旋转角度
static int mouse_last_x mouse_last_y; // 鼠标上次的屏幕投影坐标
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); // 清除颜色和深度缓存
glPushMatrix(); // 将当前ModelView矩阵M压栈
glLoadIdentity();
glTranslatef(0 0 -5);// 设定摄像机位置(观察坐标系)
// 旋转场景
glRotatef( rot_x 1 0 0 );
glRotatef( rot_y 0 1 0 );
glColor3f(0.0 0.0 1.0);
glutWireTorus(0.2 0.5 30 10);// 绘制物体
glColor3f(1.0 0.5 0.0);
//在场景中增加一个橙色立方体
glRotatef( spin 0 1 0 );
glTranslatef( 2 0 0 );
glRotatef( spin*5 0 1 0 );
glutWireCube( 0.5 );
glPopMatrix(); // ModelView出栈
glutSwapBuffers(); // 交换前后颜色缓存
}
void init()
{
glClearColor(0.0 0.0 0.0 1.0); // 设定颜色缓存的默认值(黑色)
glClearDepth(1.0); // 设定深度缓存的默认值(1为最远)
glEnable(GL_DEPTH_TEST); // 打开深度检测
glDepthFunc(GL_LEQUAL); // 设定深度检测模式:保留较近值
glShadeModel(GL_SMOOTH); // 采用光滑渲染模型,或可采用GL_FLAT
}
void spinDisplay()
{
spin = spin + 0.01;
if (spin > 360.0)
spin = spin - 360.0;
glutPostRedisplay();
}
void resize(int w int h)
{
width = w;
height = h;
// 设定视区
int mx = w > h ? w : h; // mx = max(w h)
glViewport((w - mx) / 2 (h - mx) / 2 mx mx);
glMatrixMode(GL_PROJECTION); // 选择“投影矩阵”模式
glLoadIdentity(); // 将投影矩阵归一化
// 根据投影模式设定相应的投影矩阵P
if (projective) // 透视投影
gluPerspective(45.0f 1 0.01 100);
else // 平行投影
glOrtho(-2 2 -2 2 -10 10);
glMatrixMode(GL_MODELVIEW); // 选择ModelView矩阵模式
glLoadIdentity(); // 将ModelView矩阵M归一化
}
void mouse(int button int state int x int y)
{
switch(button)
{
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
{
left_btn_down = true;
// 记录下当前鼠标位置
mouse_last_x = x;
mouse_last_y = y;
}
else if (state == GLUT_UP)
left_btn_down = false;
break;
case GLUT_MIDDLE_BUTTON:
if (state == GLUT_DOWN) /*按下中键开始或停止旋转*/
rotate_scene = !rotate_scene;
if ( rotate_scene )
glutIdleFunc(spinDisplay);
else
glutIdleFunc(0);
break;
default:
break;
}
}
void mousemoving(int x int y)
{
if (left_btn_down)
{
// 将当前鼠标位置和按下左键时的鼠标位置做比较
rot_y += x - mouse_last_x;
rot_x += y - mouse_last_y;
// 更新鼠标位置
mouse_last_x = x;
mouse_last_y = y;
}
glutPostRedisplay();
}
void keyboard(unsigned char key int xmouse int ymouse)
{
switch (key)
{
case ‘p‘: case ‘P‘:
projective = !projective;
glMatrixMode(GL_PROJECTION); // 选择“投影矩阵”模式
glLoadIdentity(); // 将投影矩阵归一化
// 根据投影模式设定相应
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 560724 2011-04-01 21:45 广东工业大学计算机图形学实验\freeglut.zip
文件 148520 2011-03-17 15:01 广东工业大学计算机图形学实验\GLUT.rar
文件 1603 2011-03-02 21:06 广东工业大学计算机图形学实验\VC中配置OpenGL.txt
文件 92672 2011-04-28 14:07 广东工业大学计算机图形学实验\实验1.ppt
文件 4507 2011-05-11 14:52 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 3533 2011-05-11 14:14 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 559 2011-05-11 14:53 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 41984 2011-05-11 14:57 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 48640 2011-05-11 14:57 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 1515 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\cg_exp2_fr
文件 196692 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\cg_exp2_fr
文件 248364 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\cg_exp2_fr
文件 16893 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\cg_exp2_fr
文件 1936748 2011-05-11 14:16 广东工业大学计算机图形学实验\实验2\Debug\cg_exp2_fr
文件 467968 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\cg_exp2_fr
文件 82944 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\vc60.idb
文件 53248 2011-05-11 14:56 广东工业大学计算机图形学实验\实验2\Debug\vc60.pdb
文件 266752 2009-03-01 11:00 广东工业大学计算机图形学实验\实验2\freeglut.dll
文件 111104 2011-05-11 13:07 广东工业大学计算机图形学实验\实验2\实验2.ppt
文件 2183 2011-04-28 14:03 广东工业大学计算机图形学实验\实验3\Debug\StdAfx.obj
文件 200783 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\test.exe
文件 253752 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\test.ilk
文件 13906 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\test.obj
文件 203728 2011-04-28 14:03 广东工业大学计算机图形学实验\实验3\Debug\test.pch
文件 467968 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\test.pdb
文件 41984 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\vc60.idb
文件 53248 2011-05-25 15:28 广东工业大学计算机图形学实验\实验3\Debug\vc60.pdb
文件 169984 1998-08-18 16:25 广东工业大学计算机图形学实验\实验3\glut.dll
文件 21440 1998-08-18 16:24 广东工业大学计算机图形学实验\实验3\glut.h
文件 79654 1998-08-18 16:25 广东工业大学计算机图形学实验\实验3\glut.lib
............此处省略58个文件信息
- 上一篇:最小二乘法 参数辨识
- 下一篇:远程抄表系统
相关资源
- 计算机专业毕业论文全套:源码,开
- 天津大学图形学考试资料
- 计算机组成原理第四版答案戴维A.帕特
- 编译原理 清华ppt 课件
- 计算机专业毕业论文 设计 个人博客
- 计算机组成原理 动画演示系统
- 安徽大学计算机834考研14-20真题回忆版
- 分形理论与分形的计算机模拟
- 计算机操作系统答案/张尧学
- 微型计算机原理及应用课程设计-温度
- 计算机工程制图习题集第四版答案 陈
- 计算机实习日志20篇
- Mindstorms: children computers and powerful id
- 计算机组成与设计(第五版)答案
- 计算机操作系统 考研书籍 汤子赢 P
- 大学计算机基础-课件
- 关于计算机体系结构的发展论文
- 计算机图形学 OpenGL实验源码+实验文档
- 2014版 计算机组成原理高分笔记 pdf 高
- 计算机网络_flash动画
- 免费的图形控件VC
- 计算机图形学的设计作业。。OpenGl源
- 编译原理课程辅导+清华大学计算机系
- 计算机体系结构量化研究方法课后习
- 计算机算法基础(第三版).pdf
- 计算机数值方法
- 计算机免疫学PDF版,带目录书签
- 杭电历年计算机考研数据结构真题以
- 计算机算法设计与分析(第2版) 习题
- 计算机算法设计与分析(第3版)王晓
评论
共有 条评论