• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: openGL  C++  

资源简介

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

评论

共有 条评论