资源简介
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单片机温度计程序
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- 安卓c语言开发SDL2+opengles
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- 交互式计算机图形学 第六版 OpenGL源代
评论
共有 条评论