Dibuja un automóvil en movimiento usando programación de gráficos por computadora en C

En gráficos por computadora, use graphics.h que proporciona funciones directas para dibujar diferentes formas coordinadas (como círculo, rectángulo, etc.). Al usar estas funciones, podemos dibujar diferentes objetos como automóviles, cabañas, árboles, etc. En este programa, dibujaremos un automóvil en movimiento usando líneas y círculos.

Funciones utilizadas en el programa: 

  • delay(n): esta función se utiliza para retener la salida del programa durante un pequeño período de tiempo, ya que el procesamiento es muy rápido, así que utilícela para ver el resultado.
  • setcolor(n): una función del archivo de encabezado graphics.h que establece el color del puntero (cursor). Hay algunos colores predefinidos en los gráficos por computadora. Aquí n es el número de color.
  • línea (x1, y1, x2, y2): una función del archivo de encabezado graphics.h que dibuja una línea con (x1, y1) como la primera coordenada de la línea y (x2, y2) como la segunda coordenada de la línea.
  • circle(x, y, r): una función del archivo de encabezado graphics.h que dibuja un círculo con centro (x, y) y radio r.

Ejemplo 1: este ejemplo crea un automóvil en movimiento sin utilizar el método cleardevice(). 

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

Producción: 

Ejemplo 2: este ejemplo utiliza el método cleardevice() para borrar la pantalla. 

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 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;
}

Producción: 

Publicación traducida automáticamente

Artículo escrito por Vivek.Pandit y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *