资源简介
opengl绘制两个行星以及一个恒星,利用键盘和鼠标来进行互动,入门级的代码。
代码片段和文件信息
#include
#include
#include
#include
#include
static int year = 0 day = 0 time = 0 day2 = 0 year2 = 0 time2 = 0;
/*
初始化操作
*/
void init() {
//设置清屏色
glClearColor(0.0f 0.0f 0.0f 0.0f);
//设置着色模式,填充色与顶点一致
glShadeModel(GL_FLAT);
}
void sun() {
glColor3f(1.0 1.0 0.0);
//复制当前矩阵并保存到栈顶
glPushMatrix();
glRotatef((GLfloat)time 0.0f 1.0f 0.0f);
//渲染一个太阳,半径1.0f
glutWireSphere(1.0f 20.0f 16.0f);
glPopMatrix();
}
void planet1() {
glColor3f(0.0 0.5 1.0);
glPushMatrix();
//绕y轴旋转year度,此时地球的局部坐标系统与全局坐标系统不一致,表现出公转
glRotatef((GLfloat)year 0.0f 1.0f 0.0f);
//沿x轴方向移动2个单位长度,此时地球的局部坐标系统已经与全局的坐标系统偏移
glTranslatef(2.0f 0.0f 0.0f);
//沿y轴旋转day度,此时地球的局部坐标系统与全局坐标系统一致,表现出自转
glRotatef((GLfloat)day 0.0f 1.0f 0.0f);
glutWireSphere(0.2f 10.0f 8.0f);
//弹出栈顶矩阵
glPopMatrix();
}
void planet2() {
glColor3f(1.0 0.5 1.0);
glPushMatrix();
glRotatef((GLfloat)year2 0.0f 1.0f 0.0f);
glTranslatef(4.0f 0.0f 0.0f);
glRotatef((GLfloat)day2 0.0f 1.0f 0.0f);
//绘制第二个地球,半径0.2f
glutWireSphere(0.2f 10.0f 8.0f);
glPopMatrix();
}
/*
展示绘制效果
*/
void display() {
//清理颜色缓冲区
glClear(GL_COLOR_BUFFER_BIT);
//设置绘制颜色
sun();
planet1();
planet2();
//弹出栈顶矩阵
glPopMatrix();
//交换缓冲区数据
glutSwapBuffers();
//强制完成绘制指令
glFlush();
}//第一个行星和恒星
/*
调整窗口尺寸
*/
void reshape(int width int height) {
//设置视口矩形区域,在默认情况下,视口被设置为占据打开窗口的整个像素矩形
//glViewport(0 0 (GLsizei)width (GLsizei)height);
//之后的矩阵操作定义为投影矩阵操作
glMatrixMode(GL_PROJECTION);
//等于是将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了!
glLoadIdentity();
//创建一个表示对称透视视图平截头体的矩阵
//设置眼睛睁开的角度,视景体的宽高比,近截面的距离,远截面的距离
gluPerspective(60.0f (GLfloat)width / (GLfloat)height 1.0f 20.0f);
//之后的矩阵操作定义为模型视图矩阵操作
glMatrix
- 上一篇:《C语言程序开发范例宝典》光盘源码
- 下一篇:大一上学期C++程序设计复习资料
相关资源
- vc++ opengl 下雪场景实现
- 基于OpenGL的音乐可视化、频谱图
- OpenGL开发库含VC和VS配置方法全
- 计算机图形学考试内容-Opengl-会移动的
- 利用opengl 组件的基础上使用VC++编写的
- opengl鼠标交互简单
- opengl 实现 雪花
- opengl实现鼠标坐标的显示
- 贝塞尔曲面 vc++ opengl
- c++写的OpenGL程序透明金字塔有加上光
- OpenGl文字显示c++类
- C++ 3D 五子棋 opengl
- 使用OpenGL编写的三维曲线和曲面,V
- openGL四面体、立方体、正N棱柱、齿轮
- 用OpenGL开发的机械臂运动仿真程序
- OPENGL 星空 背景 图像
- mfc+opengl离散点绘制曲面
- 使用opengl的图形学大作业
- 机器人手臂
- OPENGL阴影
- 场景渲染 蓝天 白云模拟程序二
- OpenGL窗口背景绘制
- MFC的对话框中使用OpenGL绘图
- openGL 小汽车
- 基于MFC的华容道小程序.zip
- 画线算法C++的实现-鼠标交互
- 基于MFC OpenGL读取obj文件并以双视图显
- opengl绘制花瓶源码基于glut库
- 七控制点B样条曲线
- 通过MFC和OpenGL实现点云数据的提取和
评论
共有 条评论