Code:
// proba352.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
static int a=0;
//float b=0;
GLfloat sideCar[] = {0.05, 0.09, 0.19,
0.04, 0.19, 0.19,
0.09, 0.22, 0.19,
0.12, 0.225, 0.19,
0.19, 0.23, 0.19,
0.30, 0.34, 0.19,
0.56, 0.34, 0.19,
0.69, 0.19, 0.19,
0.68, 0.09, 0.19,
0.05, 0.09, -0.19,
0.04, 0.19, -0.19,
0.09, 0.22, -0.19,
0.12, 0.225, -0.19,
0.19, 0.23, -0.19,
0.30, 0.34, -0.19,
0.56, 0.34, -0.19,
0.69, 0.19, -0.19,
0.68, 0.09, -0.19};
GLubyte sideVerticesL[] = {8,7,6,5,4,3,2,1,0};
GLubyte sideVerticesR[] = {9,10,11,12,13,14,15,16,17};
GLubyte midVertices[] = {0,9,10,1,
1,10,11,2,
2,11,12,3,
3,12,13,4,
4,13,14,5,
5,14,15,6,
6,15,16,7,
7,16,17,8};
GLubyte sideVertices[]= {10,16,17,9,
7,1,0,8 };
void init(void)
{
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glClearColor(0.0, 0.0, 0.9, 1.0);
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glColor3f(1.0, 0.0,0.0);
for (int i=0; i<20; i++)
{a+=8;//b+=2;
glPushMatrix();
glPushMatrix();
glVertexPointer(3, GL_FLOAT, 0, sideCar);
glDrawElements(GL_POLYGON, 9, GL_UNSIGNED_BYTE, sideVerticesL);
glDrawElements(GL_POLYGON, 9, GL_UNSIGNED_BYTE, sideVerticesR);
glFrontFace(GL_CW);
glDrawElements(GL_QUADS, 32, GL_UNSIGNED_BYTE, midVertices);
glDrawElements(GL_QUADS, 8, GL_UNSIGNED_BYTE, sideVertices);
glPopMatrix();
//glTranslatef(0,0,5);
glTranslatef(-4,-2.05,5.2);
glRotatef((GLfloat) a,0.0,0.0,1.0);
glTranslatef(4,2.05,-5.2);
glPushMatrix();
glutWireTorus(0.09,0.18,18,8);
glPopMatrix();
glTranslatef(-4.5,-3.5,9);
glRotatef((GLfloat) a,0,0,1);
glTranslatef(4.5,3.5,-9);
glPushMatrix();
glutWireTorus(0.2,0.4,18,8);
glPopMatrix();
//glTranslatef(0.8,-0.3,2);
/*glPushMatrix();
glTranslatef(-2.5,-2.3,7.2);//glRotatef(a,0,0,1);//glTranslatef(4.4,2.3,-1.2);
glutWireTorus(0.09,0.18,18,8);
glTranslatef(-2,-1,3);//glRotatef(a,0,0,1);//glTranslatef(1.6,0,0);
glutWireTorus(0.09,0.18,18,8);
glPopMatrix();*/
glPopMatrix();
glutSwapBuffers();
}
}
void Resize(int width, int height)
{
if(height==0) height=1;
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,(GLdouble)width/height,1.0,200.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(2.0,1.0,-2.5,0.0,0.0,0.0,0.0,1.0,0.0);
}
void keyboard(unsigned char key,int x, int y)
{
switch (key)
{
case 'a':
a = (a+5)%360;
glutPostRedisplay();
break;
case 'A':
a = (a-5)%360;
glutPostRedisplay();
break;
default:
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize(600, 600);
glutInitWindowPosition(100, 100);
glutCreateWindow("Car");
init();
glutDisplayFunc(display);
glutReshapeFunc(Resize);
glutKeyboardFunc(keyboard);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-5.0,5.0,-5.0,5.0,-5.0,5.0);
glRotatef(5.0,1.0,0.0,0.0);
glMatrixMode(GL_MODELVIEW);
glutMainLoop();
return 0;
}
Pls, can someone told me how to rotate the wheels.