Draw a moving car using computer graphics programming in C - GeeksforGeeks

07 Oct, 2021
In computer graphics, use graphics.h which provide direct functions to draw different coordinate shapes (like circle, rectangle etc). By using these functions we can draw different objects like car, hut, trees, etc. In this program, we will draw a moving car using line and circles.
Functions used in program: 
delay(n): This function is used for holding the program output for a small period of time since processing is very fast so use it to see the result.
setcolor(n): A function from graphics.h header file which set the color of the pointer (cursor). There are some predefined colors in computer graphics. Here n is color number.
line(x1, y1, x2, y2): A function from graphics.h header file which draw a line with (x1, y1) as first coordinate of line and (x2, y2) as second coordinate of the line.
circle(x, y, r): A function from graphics.h header file which draw a circle with center (x, y) and radius r.
Example 1: This example create a moving car without using cleardevice() method. 
C++
// C program to draw a moving car. This// program run in gcc compiler having// graphics.h library installed#include <graphics.h>#include <stdio.h> // Function to draw moving carvoid draw_moving_car(void) {     int i, j = 0, gd = DETECT, gm;     // Passed three arguments to initgraph    // function to initialize graphics mode    initgraph(&gd, &gm, "");     for (i = 0; i <= 420; i = i + 10) {         // Set color of car as red        setcolor(RED);         // Thease lines for bonnet and        // body of car        line(0 + i, 300, 210 + i, 300);        line(50 + i, 300, 75 + i, 270);        line(75 + i, 270, 150 + i, 270);        line(150 + i, 270, 165 + i, 300);        line(0 + i, 300, 0 + i, 330);        line(210 + i, 300, 210 + i, 330);         // For left wheel of car        circle(65 + i, 330, 15);        circle(65 + i, 330, 2);         // For right wheel of car        circle(145 + i, 330, 15);        circle(145 + i, 330, 2);         // Line left of left wheel        line(0 + i, 330, 50 + i, 330);         // Line middle of both wheel        line(80 + i, 330, 130 + i, 330);         // Line right of right wheel        line(210 + i, 330, 160 + i, 330);         delay(100);         // To erase previous drawn car, draw        // the whole car at same position        // but color using black        setcolor(BLACK);                 // Lines for bonnet and body of car        line(0 + i, 300, 210 + i, 300);        line(50 + i, 300, 75 + i, 270);        line(75 + i, 270, 150 + i, 270);        line(150 + i, 270, 165 + i, 300);        line(0 + i, 300, 0 + i, 330);        line(210 + i, 300, 210 + i, 330);         // For left wheel of car        circle(65 + i, 330, 15);        circle(65 + i, 330, 2);         // For right wheel of car        circle(145 + i, 330, 15);        circle(145 + i, 330, 2);         // Line left of left wheel        line(0 + i, 330, 50 + i, 330);         // Line middle of both wheel        line(80 + i, 330, 130 + i, 330);         // Line right of right wheel        line(210 + i, 330, 160 + i, 330);    }     getch();     closegraph();} // Driver codeint main(){    draw_moving_car();     return 0;}
Output: 
Example 2: This example uses cleardevice() method to clear the screen. 
C
// C program to draw a moving car. This// program run in gcc compiler having// graphics.h library installed#include <graphics.h>#include <stdio.h> // Function to draw moving carvoid draw_moving_car(void) {     int i, j = 0, gd = DETECT, gm;     // Passed three arguments to initgraph    // function to initialize graphics mode    initgraph(&gd, &gm, "");     for (i = 0; i <= 420; i = i + 10) {         // Set color of car as red        setcolor(RED);         // Thease lines for bonnet and        // body of car        line(0 + i, 300, 210 + i, 300);        line(50 + i, 300, 75 + i, 270);        line(75 + i, 270, 150 + i, 270);        line(150 + i, 270, 165 + i, 300);        line(0 + i, 300, 0 + i, 330);        line(210 + i, 300, 210 + i, 330);         // For left wheel of car        circle(65 + i, 330, 15);        circle(65 + i, 330, 2);         // For right wheel of car        circle(145 + i, 330, 15);        circle(145 + i, 330, 2);         // Line left of left wheel        line(0 + i, 330, 50 + i, 330);         // Line middle of both wheel        line(80 + i, 330, 130 + i, 330);         // Line right of right wheel        line(210 + i, 330, 160 + i, 330);         delay(100);         // To erase previous drawn car        // use cleardevice() function        cleardevice();    }     getch();     closegraph();} // Driver codeint main(){    draw_moving_car();     return 0;}
Output: 
 
surinderdawra388
computer-graphics
C Programs
Computer Subject
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
C Program to read contents of Whole File
Header files in C/C++ and its uses
How to return multiple values from a function in C or C++?
How to Append a Character to a String in C
Program to print ASCII Value of a character
SDE SHEET - A Complete Guide for SDE Preparation
Introduction to Algorithms
Software Engineering | Coupling and Cohesion
Software Engineering | Prototyping Model
Difference between NP hard and NP complete problem