Search Tutorials

Friday, 14 June 2013

OpenGL code for making a moving Car

This source code is for making a simple car which can move from one side to another side.

OpenGL program:-

#include <GL/glut.h>    // Header File For The GLUT Library 
#include <GL/gl.h>    // Header File For The OpenGL32 Library
#include <GL/glu.h>    // Header File For The GLu32 Library
//#include <unistd.h>     // Header File For sleeping.

/* ASCII code for the escape key. */
#define ESCAPE 27

/* The number of our GLUT window */
int window; 

/* rotation angle for the triangle. */
float rtri = 0.0f;

/* rotation angle for the quadrilateral. */
float rquad = 0.0f;

/* A general OpenGL initialization function.  Sets all of the initial parameters. */
// We call this right after our OpenGL window is created.
void InitGL(int Width, int Height)         
  // This Will Clear The Background Color To Black
  glClearColor(0.0f, 0.0f, 0.0f, 0.0f);     
  glClearDepth(1.0);                // Enables Clearing Of The Depth Buffer
  glDepthFunc(GL_LESS);                // The Type Of Depth Test To Do
  glEnable(GL_DEPTH_TEST);            // Enables Depth Testing
  glShadeModel(GL_SMOOTH);            // Enables Smooth Color Shading

  glLoadIdentity();                // Reset The Projection Matrix



/* The function called when our window is resized (which shouldn't happen, because we're fullscreen) */
void ReSizeGLScene(int Width, int Height)
  if (Height==0)                // Prevent A Divide By Zero If The Window Is Too Small

  glViewport(0, 0, Width, Height);        // Reset The Current Viewport And Perspective Transformation



float ballX = -0.5f;
float ballY = 0.0f;
float ballZ = 0.0f;

void drawBall(void) {
        glColor3f(0.0, 1.0, 0.0); //set ball colour
        glTranslatef(ballX,ballY,ballZ); //moving it toward the screen a bit on creation
        glutSolidSphere (0.3, 20, 20); //create ball.
        glTranslatef(ballX+1.5,ballY,ballZ); //moving it toward the screen a bit on creation
        glutSolidSphere (0.3, 20, 20); //

/* The main drawing function. */
void DrawGLScene()
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);        // Clear The Screen And The Depth Buffer
  glLoadIdentity();                // Reset The View

  glTranslatef(rtri,0.0f,-6.0f);        // Move Left 1.5 Units And Into The Screen 6.0
  //glRotatef(rtri,1.0f,0.0f,0.0f);        // Rotate The Triangle On The Y axis
  // draw a triangle (in smooth coloring mode)
  glBegin(GL_POLYGON);                // start drawing a polygon
  glColor3f(1.0f,0.0f,0.0f);            // Set The Color To Red
  glVertex3f(-1.0f, 1.0f, 0.0f);        // Top left
  glVertex3f(0.4f, 1.0f, 0.0f);
  glVertex3f(1.0f, 0.4f, 0.0f);
  glColor3f(0.0f,1.0f,0.0f);            // Set The Color To Green
  glVertex3f( 1.0f,0.0f, 0.0f);        // Bottom Right
  glColor3f(0.0f,0.0f,1.0f);            // Set The Color To Blue
  glVertex3f(-1.0f,0.0f, 0.0f);// Bottom Left    

  glEnd();                    // we're done with the polygon (smooth color interpolation)
  rtri+=0.005f;                    // Increase The Rotation Variable For The Triangle
  rquad-=15.0f;                    // Decrease The Rotation Variable For The Quad

  // swap the buffers to display, since double buffering is used.

/* The function called whenever a key is pressed. */
void keyPressed(unsigned char key, int x, int y) 
    /* sleep to avoid thrashing this procedure */
   // usleep(100);

    /* If escape is pressed, kill everything. */
    if (key == ESCAPE) 
    /* shut down our window */
    /* exit the program...normal termination. */

int main(int argc, char **argv) 
  glutInit(&argc, argv);  


  /* get a 640 x 480 window */
  glutInitWindowSize(640, 480);  

  /* the window starts at the upper left corner of the screen */
  glutInitWindowPosition(0, 0);  

  /* Open a window */  
  window = glutCreateWindow("Moving Car");  

  /* Register the function to do all our OpenGL drawing. */

  /* Go fullscreen.  This is as soon as possible. */

  /* Even if there are no events, redraw our gl scene. */

  /* Register the function called when our window is resized. */

  /* Register the function called when the keyboard is pressed. */

  /* Initialize our window. */
  InitGL(640, 480);
  /* Start Event Processing Engine */  

  return 1;

//Output of the above program:-

OpenGL code for making moving Car

Related Programs:-

Simple Cloud

Moving Circle

Simple Fountain

Collision Detection between two Objects

All in one OpenGL programs


  1. source code for Stop and wait ARQ

  2. This comment has been removed by a blog administrator.

  3. hello can you please help me, how to make a sun move in a circle arc when pressed 's' ?


Back to Top