Нарисуйте движущийся автомобиль, используя программирование компьютерной графики на C

Опубликовано: 17 Февраля, 2022

В компьютерной графике используйте graphics.h, который предоставляет прямые функции для рисования различных координатных фигур (например, круга, прямоугольника и т. Д.). Используя эти функции, мы можем рисовать различные объекты, такие как машина, хижина, деревья и т. Д. В этой программе мы будем рисовать движущуюся машину, используя линии и круги.

Функции, используемые в программе:

  • delay (n): эта функция используется для удержания вывода программы в течение небольшого периода времени, поскольку обработка выполняется очень быстро, поэтому используйте ее, чтобы увидеть результат.
  • setcolor (n): функция из заголовочного файла graphics.h, которая устанавливает цвет указателя (курсора). В компьютерной графике есть несколько предопределенных цветов. Здесь n - номер цвета.
  • line (x1, y1, x2, y2): функция из заголовочного файла graphics.h, которая рисует линию с (x1, y1) в качестве первой координаты линии и (x2, y2) в качестве второй координаты линии.
  • circle (x, y, r): функция из заголовочного файла graphics.h, которая рисует круг с центром (x, y) и радиусом r.

Example 1: This example create a moving car without using cleardevice() method.

// 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 car
void 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 possition
        // 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 code
int main()
{
    draw_moving_car();
  
    return 0;
}

Выход:

Пример 2: В этом примере используется метод cleardevice () для очистки экрана.

// 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 car
void 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 code
int main()
{
    draw_moving_car();
  
    return 0;
}

Выход:

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями теории CS для собеседований по SDE с помощью курса теории CS по доступной для студентов цене и будьте готовы к работе в отрасли.