Programa para dibujar la Puerta de la India usando infografías en C

En gráficos C , las funciones de graphics.h se utilizan para dibujar diferentes formas como círculos, rectángulos, etc., mostrar texto (cualquier mensaje) en un formato diferente (diferentes fuentes y colores). Mediante el uso de graphics.h se pueden crear programas, animaciones y también juegos.

Función utilizada: 

  • rectángulo (l, t, r, b) : una función del archivo de encabezado graphics.h que se usa para dibujar un rectángulo de izquierda (l) a derecha (r) y de arriba (t) a abajo (b).
  • line(a1, b1, a2, b2) : Una función del archivo de encabezado graphics.h que se usa para dibujar una línea desde el punto (a1, b1) hasta el punto (a2, b2).
  • círculo (a, b, r) : una función del archivo de encabezado graphics.h que se utiliza para dibujar un círculo con (a, b) como centro y r como radio.
  • outtextxy(int x, int y, char *string) : Una función del archivo de encabezado graphics.h mediante la cual uno puede imprimir cualquier declaración donde, x, y son las coordenadas del punto y el tercer argumento contiene la dirección de la string para ser mostrado.
  • settextstyle(int font, int direction, int font_size) : Una función del archivo de encabezado graphics.h mediante la cual se puede crear el estilo del texto imprimible donde el argumento de fuente especifica la fuente del texto. La dirección puede ser HORIZ_DIR (de izquierda a derecha) o VERT_DIR (de abajo a arriba).
  • ellipse(int x, int y, int start_angle, int end_angle, int x_radius, int y_radius) : una función del archivo de encabezado graphics.h donde x, y son la ubicación de la elipse . x_radius y y_radius deciden el radio de la forma x e y. start_angle es el punto inicial del ángulo y end_angle es el punto final del ángulo. El valor del ángulo puede variar de 0 a 360 grados.
  • arc(x, y, start_ang, end_ang, r) : una función del archivo de encabezado graphics.h que dibuja un arco con (x, y) como centro, start_ang es su ángulo inicial y end_ang es su ángulo final, y r como un radio

Enfoque: siga los pasos a continuación para resolver este problema: 

  • Primero, defina la línea base usando la función line() .
  • Llame a la función left() para definir e implementar decoraciones en el lado izquierdo de la Puerta de la India. En la función left(), primero, defina un rectángulo usando la función rectángulo() que actuará como el rectángulo base inferior y que se decorará usando la función line() . Luego implemente otro rectángulo, que es el rectángulo del lado superior, usando la función rectángulo(). Aquí, decóralo usando una función line() y circle() .
  • Llame a la función right() para realizar los mismos pasos que se discutieron anteriormente para el lado izquierdo con las coordenadas modificadas.
  • Llame a la función mid () para implementar la decoración de la parte central. Aquí, implemente algunos arcos usando la función elipse () . Además, use la función de línea () para hacer otras decoraciones también.
  • Llame a la función arriba () . Aquí, implemente algunos rectángulos usando la función rectángulo () . Aquí, use whileloop para implementar líneas continuas con una función line() con fines decorativos. Aquí, implemente algunos rectángulos de diferentes tamaños para decorar.
  • En la función arriba () , uno hace una decoración en un rectángulo con una función de círculo() y line() . En el medio del rectángulo especial que se construye con una función line() , escriba ‘INDIA’, que generalmente se ve en el real. Además, se implementan dos arcos con la función arc () para realizar la decoración superior.

A continuación se muestra la implementación del enfoque anterior:

C

// C program for the above approach
 
#include <conio.h>
#include <graphics.h>
#include <stdio.h>
 
// Used Function Declaration
void left();
void right();
void mid();
void up();
 
void up()
{
    int u = 520;
    rectangle(500, 370, 1400, 400);
 
    // Defining A loop To Draw
    // Many Lines
    while (u <= 1400) {
        line(u, 370, u, 400);
        u = u + 20;
    }
 
    rectangle(480, 355, 1420, 370);
    line(500, 400, 480, 370);
    line(1400, 400, 1420, 370);
    rectangle(500, 355, 1400, 295);
    rectangle(520, 265, 1380, 295);
 
    // Main Rectangle To Write
    // India
    rectangle(700, 135, 1200, 265);
    circle(780, 220, 30);
    circle(1120, 220, 30);
    line(830, 190, 1070, 190);
    line(830, 190, 830, 240);
    line(830, 240, 900, 240);
    line(1070, 190, 1070, 240);
    line(1070, 240, 1000, 240);
    line(1000, 240, 1000, 250);
    line(900, 240, 900, 250);
    line(900, 250, 1000, 250);
 
    // Writing India
    settextstyle(8, 0, 4);
    outtextxy(900, 200, "INDIA");
    rectangle(800, 125, 1100, 135);
    rectangle(880, 70, 1020, 90);
    arc(880, 125, 90, 180, 35);
    arc(1020, 125, 0, 90, 35);
}
 
// Function to draw the middle part
// of the India Gate
void mid()
{
    line(700, 400, 1200, 400);
    line(700, 430, 935, 430);
    line(965, 430, 1200, 430);
    line(935, 480, 935, 430);
    line(965, 480, 965, 430);
    line(935, 480, 965, 480);
 
    // Left side arcs
    ellipse(935, 580, 90,
            180, 165, 105);
    ellipse(935, 580, 90,
            180, 185, 125);
 
    // Right Side Arcs
    ellipse(965, 580, 0,
            90, 165, 105);
    ellipse(965, 580, 0,
            90, 185, 125);
 
    // Left Side Vertical Line
    line(770, 1000, 770, 580);
 
    // Right Side Vertical Line
    line(1130, 1000, 1130, 580);
}
 
// Function to draw the left part
// of the India Gate
void left()
{
    // Left Base Rectangle
    rectangle(500, 700,
              700, 1000);
 
    // Lower Inner Rectangle
    rectangle(530, 700,
              670, 1000);
    rectangle(560, 920,
              640, 1000);
    line(500, 920, 700, 920);
    line(500, 700, 700, 700);
    line(480, 680, 770, 680);
    line(500, 700, 480, 680);
    line(700, 700, 720, 680);
 
    // Left Upper Rectangle
    rectangle(500, 400,
              700, 680);
 
    // Upper Inner Rectangle
    rectangle(530, 500,
              670, 680);
    line(530, 550, 670, 550);
    line(576, 500, 576, 550);
    line(622, 500, 622, 550);
    line(500, 580, 770, 580);
    line(530, 600, 670, 600);
    rectangle(560, 600,
              640, 630);
    circle(600, 460, 40);
    circle(600, 460, 30);
}
 
// Function to draw the right part
// of the India Gate
void right()
{
    // Right Base Rectangle
    rectangle(1200, 700,
              1400, 1000);
 
    // Lower Inner Rectangle
    rectangle(1230, 700,
              1370, 1000);
    rectangle(1260, 920,
              1340, 1000);
    line(1200, 920, 1400, 920);
    line(1200, 700, 1400, 700);
    line(1130, 680, 1420, 680);
    line(1200, 700, 1180, 680);
    line(1400, 700, 1420, 680);
 
    // Right Upper Rectangle
    rectangle(1200, 400,
              1400, 680);
 
    // Upper Inner Rectangle
    rectangle(1230, 500,
              1370, 680);
    line(1230, 550, 1370, 550);
    line(1276, 500, 1276, 550);
    line(1322, 500, 1322, 550);
    line(1130, 580, 1400, 580);
    line(1230, 600, 1370, 600);
    rectangle(1260, 600,
              1340, 630);
    circle(1300, 460, 40);
    circle(1300, 460, 30);
}
 
// Driver Code
void main()
{
    int gd = DETECT, gm;
 
    // Initialize of gdriver with
    // DETECT macros
    initgraph(&gd, &gm,
              "C:\\turboc3\\bgi");
 
    // Base Line
    line(200, 1000, 2000, 1000);
 
    // Function Call
    left();
 
    // Function Call
    right();
 
    // Function Call
    mid();
 
    // Function Call
    up();
 
    // Holding The Screen For A While
    getch();
 
    // Close the initialized gdriver
    closegraph();
}

Producción:

Publicación traducida automáticamente

Artículo escrito por sounetraghosal2000 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 *