资源简介
openGL绘制的一个移动的2D小车,C++编写,长方形加上两个车轮,实现移动
代码片段和文件信息
#include
#include
#include
using namespace std;
const GLint n = 100;//点数
const GLfloat R = 7;//半径
const GLfloat PI = 3.1415926f;
static GLfloat SPIN_CAR = 0.0; //旋转量
static GLfloat MOVE_CAR = 0.0; //平移量
static GLfloat SIZE_CAR = 1.5; //缩放量
static GLfloat MOVE_WHEEL = 2.0;
struct Point {
int x y;
Point() {
x = 0;
y = 0;
}
Point(int xi int yi) {
x = xi;
y = yi;
}
};
struct CarRectangle
{
Point lbP rtP;
int xmin ymin xmax ymax;
CarRectangle(Point lbPi Point rtPi) {
lbP = lbPi;
rtP = lbPi;
xmin = lbPi.x;
ymin = lbPi.y;
xmax = rtPi.x;
ymax = rtPi.y;
}
};
void init(void)
{
glClearColor(1.0 1.0 1.0 0.0); //指定清除颜色(黑色),即背景颜色
glShadeModel(GL_FLAT);
}
void drawCar(CarRectangle carRec) {
glClear(GL_COLOR_BUFFER_BIT); //清除所有的像素
glPushMatrix();
glTranslatef(MOVE_CAR 0 0); //移动,参数含义(x轴位移y轴位移z轴位移)
glRotatef(SPIN_CAR 0 0 1); //旋转,参数含义(旋转量x轴y轴z轴)
glScalef(SIZE_CAR 1 1); //缩放,参数含义(x轴倍数y轴倍数z轴倍数)
glColor3f(1.0 1.0 0.0); //绘制颜色RGB
glRectf(carRec.xmincarRec.ymincarRec.xmax carRec.ymax); //绘制矩形
glPopMatrix();
glutSwapBuffers();
}
void drawCar() {
glPushMatrix();
glTranslatef(MOVE_CAR 0 0); //移动,参数含义(x轴位移y轴位移z轴位移)
glRotatef(SPIN_CAR 0 0 1); //旋转,参数含义(旋转量x轴y轴z轴)
glScalef(SIZE_CAR 1 1); //缩放,参数含义(x轴倍数y轴倍数z轴倍数)
glColor3f(1.0 1.0 0.0); //绘制颜色RGB
glRectf(-25-25 2525); //绘制矩形
glPopMatrix();
//glutSwapBuffers();
}
void drawWheelAhead() {
//glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glTranslatef(MOVE_CAR 0 0); //移动,参数含义(x轴位移y轴位移z轴位移)
glRotatef(SPIN_CAR 0 0 1); //旋转,参数含义(旋转量x轴y轴z轴)
glScalef(SIZE_CAR SIZE_CAR 1); //缩放,参数含义(x轴倍数y轴倍数z轴倍数)
glBegin(GL_POLYGON);
glColor3f(1.0 0.0 0.0);
for (int i = 0; i glVertex2f(R*cos(2 * PI / n*i)-15 R*sin(2 * PI / n*i)-15);
}
glEnd();
glFlush();
glPo
- 上一篇:组态王源代码
- 下一篇:8052单片机温度计程序
相关资源
- vc++ mfc 基于udp协议在不同ip地址之间
- GIF图片 c++显示代码
- VC++2005测试版运行库 Microsoft.VC80.Debu
- 广工编译原理课程设计 PL0C++改进需用
- Visual C++程序设计与应用教程课后习题
- 空间平面拟合算法
- 猎豹网校C++ Primer初中高全套无密版
- c++电梯控制系统 比较简易的版本
- 课程设计全国交通咨询模拟系统C++实
- C++编写的一个读取图像文件的小程序
- c++操作系统进程管理模拟
- C++迷宫问题 寻找最短路径
- 无向图 破圈法求最小生成树
- m行k列矩阵乘以k行n列矩阵
- OPENGL分形模拟山脉
- vibe算法opencv+c++,RGB图像可用
- VC++基于mfc 实现对话框打开读取txt文件
- C++编程的猜单词游戏
- 通用弹道仿真计算程序-C++源代码
- gnss卫星定位 c++ O文件N文件
- 银行家算法c++源代码
- c++ ten超级井字棋源码
- 个人通讯录c++版完整代码
- 全国青少年信息学奥林匹克竞赛教程
- Visual C++ Build Tools 2015 离线包.part1/7
- vc++ 2005 express 完整安装包
- C++ 数据采集
- fastMatch的c++实现(需要opencv支持)
- 基于c++的简单文件传输
- 《C++ GUI QT编程》教程配套
评论
共有 条评论