资源简介
利用键盘控制汽进、后退、转弯、加速和减速;车前
制作一个弹出菜单,上面的菜单项用来控制车身和车轮的颜色以及退出程序。
定义对应于ReShape事件的回调函数,使得当用户改变窗口的大小时,显示的汽车不会变形。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
float delta_v=0.0;
float r=1.0g=1.0b=0.0;
float r1=0.0g1=0.0b1=0.0;
float P[16];
float M[16];
//************ 光线及材质的定义**************
GLfloat light_ambient[]={0.0 0.0 0.0 1.0};
GLfloat light_diffuse[]={1.0 1.0 1.0 1.0};
GLfloat light_specular[]={1.0 1.0 1.0 1.0};
GLfloat light_position[]={20.0 20.0 20.0 0.0};
GLfloat mat_specular1[]={1.0 1.0 1.0 1.0};
GLfloat mat_diffuse1[]={1.0 1.0 1.0 1.0};
GLfloat mat_ambient1[]={1.0 1.0 1.0 1.0};
GLfloat mat_shininess1={10.0};
GLfloat global_ambient[]={0.10.10.10.1};
GLfloat vertices[ ] [3] ={{-0.701}{0.701}{0.70-1}{-0.70-1}{-0.510.8}{0.510.8}{0.51-0.8} {-0.51-0.8}};
void menu(int id){
switch(id)
{
case (1):
exit(0);
break;
}
glutPostRedisplay();
}
//***********车身颜色变化菜单************
void color_car_body_menu(int id)
{
switch(id){
case(1):
r=1.0;g=0.0;b=0.0;
break;
case(2):
r=0.0;g=1.0;b=0.0;
break;
case(3):
r=0.0;g=0.0;b=1.0;
break;
case(4):
r=0.9;g=0.1;b=0.6;
break;
case(5):
r=0.7;g=0.5;b=0.1;
break;
case(6):
r=1.0;g=0.0;b=0.0;
break;
}
glutPostRedisplay();
}
//************车轮颜色变化菜单***************
void color_car_wheel_menu(int id)
{
switch(id){
case(1):
r1=0.0;g1=0.5;b1=1.0;
break;
case(2):
r1=0.7;g1=0.8;b1=0.4;
break;
case(3):
r1=0.7;g1=0.0;b1=0.0;
break;
case(4):
r1=0.9;g1=0.1;b1=0.6;
break;
case(5):
r1=0.7;g1=0.5;b1=0.1;
break;
case(6):
r1=0.7;g1=1.0;b1=0.6;
break;
}
glutPostRedisplay();
}
//******************定义跑道*********************
void runway()
{ glBegin(GL_QUADS);
glColor3f(0.0f0.8f0.0f);
glVertex3f(-3.0f -0.3f 100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f( -0.8f -0.3f 100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f( -0.8f-0.3f -100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f(-3.0f-0.3f -100.0f);
glEnd();
glBegin(GL_QUADS);
glColor3f(0.0f0.8f0.0f);
glVertex3f(0.8f -0.3f 100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f( 3.0f -0.3f 100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f( 3.0f-0.3f -100.0f);
glColor3f(0.0f0.8f0.0f);
glVertex3f(0.8f-0.3f -100.0f);
glEnd();
glBegin(GL_QUADS);
glColor3f(0.9f1.0f0.9f);
glVertex3f(-0.8f-0.3f 100.0f);
glColor3f(0.9f1.0f0.9f);
glVertex3f( 0.8f -0.3f 100.0f);
glColor3f(0.9f1.0f0.9f);
glVertex3f( 0.8f-0.3f -100.0f);
glColor3f(0.9f1.0f0.9f);
glVertex3f(-0.8f-0.3f -100.0f);
glEnd();
}
//*************画车身**************
void quad(int aint b int c int d)
{
glBegin(GL_QUADS);
glVertex3fv(vertices[a]);
相关资源
- 基于STM32F103ZET6控制舵机旋转(ts90a/
- 安卓c语言开发SDL2+opengles
- 汽车电子编程规范(Unlock-MISRA C 2012)
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opengl绘制汽车.cpp
- 基于VC、MATLAB的汽车制动性能仿真
- opengl实现水流效果sph
- opengl源代码,全是精华!
- OpenGL迷宫山东大学图形学实验三
- opengl的立方体消隐算法
- 汽车加油行驶问题 C++算法实现
- vc++ opengl代码爆炸
- 我见过最漂亮的CS仿真程序openGL和C+
- 简单的汽车租赁管理软件C++控制台程
- 基于51单片机汽车尾灯设计论文
- 广东某工业大学的openGL课程设计
- 数据库课程设计 - 汽车租借信息系统
- 使用OpenGL实现多个小球在密闭空间内
- 利用openGL和C++实现光线跟踪绘图的完
- OpenGl C++太阳系小行星运行系统 可切换
- vc++和OpenGL实现三维地形实时动态显示
- MFC实现简易画图程序
- C++实现利用OpenGL实现三维绘图
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
评论
共有 条评论