Programa para crear un teclado móvil usando gráficos de computadora

En los gráficos Turbo C, las funciones de graphics.h se utilizan para dibujar diferentes formas como un círculo, un rectángulo, etc., mostrar texto (cualquier mensaje) en diferentes formatos (diferentes fuentes y colores). Mediante el uso de programas graphics.h, se pueden diseñar animaciones y también juegos. Estos pueden ser útiles para los principiantes.

Función utilizada:

  • rectángulo (l, t, r, b) : una función del archivo de encabezado graphics.h que dibuja 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 dibuja una línea desde el punto (a1, b1) hasta el punto (a2, b2).
  • Circle(a, b, r) : Una función del archivo de encabezado graphics.h que dibuja un círculo con (a, b) como el centro y r es el radio.
  • setfillstyle (patrón, color): una función del archivo de encabezado graphics.h mediante la cual se puede dar un patrón de dibujo y también un color específico.
  • floodfill (a, b, c): una función del archivo de encabezado graphics.h mediante la cual se puede colorear un área delimitada específica con (a, b) como el centro y c como el color del borde.
  • outtextxy(int x, int y, char *string): una función del archivo de encabezado graphics.h mediante la cual se pueden imprimir declaraciones donde, x, y son coordenadas del punto y el tercer argumento contiene la dirección de la string a se visualizará.
  • 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 la fuente especifica la fuente del texto. La dirección puede ser HORIZ_DIR (de izquierda a derecha) o VERT_DIR (de abajo a arriba).

Acercarse:

  • Se definen cuatro funciones menu_key(), others(), key(), screen().
  • El color de fondo se vuelve gris oscuro usando las funciones setfillstyle() y floodfill().
  • El siguiente paso es implementar un rectángulo usando la función rectángulo(), que actuará como el contorno del móvil.
  • Colorea el contorno como negro usando las funciones setfillstyle() y floodfill(). Ese será el color del móvil.
  • Invoque la función de pantalla() y haga el contorno de la pantalla usando la función de rectángulo(). Implementa la Bandera India como salvapantallas del móvil. La bandera india también está implementada por Computer Graphics.
  • Llamar a la función other(). Algunos accesorios móviles se implementan en esta función, como el altavoz, la cámara selfie, el micrófono y la marca móvil.
  • El altavoz se implementará utilizando la función rectángulo() y para colorear el blanco, se utilizan las funciones setfillstyle() y floodfill(). La cámara selfie se implementa mediante el uso de dos círculos concatenados implementados por la función circle(). Coloréalo de blanco usando las funciones setfillstyle() y floodfill().
  • El micrófono está implementado por un solo círculo implementado por una función circle(). Además, se colorea de blanco usando las funciones setfillstyle() y floodfill(). Mobile Brand Name se implementa mediante las funciones outtextxy() y settextstyle().
  • Llame a la función menu_key() para implementar la tecla Menú. La tecla del menú principal se implementa mediante dos rectángulos concatenados implementados por la función rectángulo(). Colorea este rectángulo de blanco usando las funciones setfillstyle() y floodfill(). Implemente cuatro claves usando la función rectángulo(). Entre ellos, dos estarán decorados con color blanco utilizando las funciones setfillstyle() y floodfill(), y los otros dos son teclas de recepción y rechazo de llamadas. La tecla de recepción de llamadas es de color verde y la tecla de rechazo de llamadas es de color rojo usando las funciones setfillstyle() y floodfill().
  • Llame a la función key() para implementar otras claves. En los teléfonos móviles, hay 12 teclas presentes. Cada uno de ellos tiene un nombre y trabajo diferente. Entonces, aquí se implementan dos bucles while anidados que crearán un total de 12 claves, 3 claves en cada 4 filas.
  • Si se implementan declaraciones para imprimir el número de las claves. Los números se imprimen en la pantalla usando outtextxy() y settextstyle().

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 menu_key();
void others();
void key();
void screen();
 
// Driver Code
void main()
{
    int gd = DETECT, gm;
 
    // Initialize of gdriver with
    // DETECT macros
    initgraph(&gd, &gm,
              "C:\\turboc3\\bgi");
 
    // Set Background Color As
    // Darkgray
    setfillstyle(SOLID_FILL,
                 DARKGRAY);
    floodfill(1, 1, 15);
 
    // Main Outline
    rectangle(800, 100, 1100, 730);
 
    // Set Phone Color AS Black
    setfillstyle(SOLID_FILL, BLACK);
    floodfill(805, 105, 15);
 
    // Calling screen() Function
    screen();
 
    // Calling others() Function
    others();
 
    // Calling menu_key() Function
    menu_key();
 
    // Calling key() Function
    key();
 
    // Holding The Screen For
    // A While
    getch();
 
    // Close the initialized
    // gdriver
    closegraph();
}
 
void screen()
{
    // Screen Outline
    rectangle(830, 130, 1070, 370);
 
    // Screen Saver Indian Flag
    rectangle(900, 170, 1000, 230);
    line(900, 190, 1000, 190);
    setfillstyle(SOLID_FILL,
                 LIGHTRED);
    floodfill(905, 175, 15);
    circle(950, 200, 10);
    setfillstyle(SOLID_FILL, BLUE);
    floodfill(955, 205, 15);
    line(900, 190, 1000, 190);
    line(900, 210, 1000, 210);
    setfillstyle(SOLID_FILL, WHITE);
    floodfill(905, 195, 15);
    floodfill(995, 195, 15);
    line(900, 210, 1000, 210);
    setfillstyle(SOLID_FILL, GREEN);
    floodfill(905, 215, 15);
    line(900, 170, 900, 320);
    rectangle(880, 320, 920, 330);
    setfillstyle(SOLID_FILL, WHITE);
    floodfill(885, 325, 15);
}
 
void key()
{
    int l = 820, t = 500, i = 1;
 
    // Implementing 12 Others Key
    // and
    // Numbering Them
    while (t <= 650) {
        while (l <= 1020) {
            rectangle(l, t, l + 70,
                      t + 40);
            if (i == 1) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "1 ., ?");
            }
            else if (i == 2) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "2 ABC");
            }
            else if (i == 3) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "3 DEF");
            }
            else if (i == 4) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "4 GHI");
            }
            else if (i == 5) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "5 JKL");
            }
            else if (i == 6) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "6 MNO");
            }
            else if (i == 7) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "7PQRS");
            }
            else if (i == 8) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "8 TUV");
            }
            else if (i == 9) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "9WXYZ");
            }
            else if (i == 10) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "* +");
            }
            else if (i == 11) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "0 _");
            }
            else if (i == 12) {
                settextstyle(8, 0, 2);
                outtextxy(l + 5, t + 5,
                          "# x");
            }
            i++;
            l = l + 100;
        }
        t = t + 50;
        l = 820;
    }
}
 
void others()
{
    setfillstyle(SOLID_FILL,
                 WHITE);
 
    // Implement Microphone
    circle(900, 710, 5);
    floodfill(902, 712, 15);
 
    // Implement Selfie Camera
    circle(1030, 115, 8);
    circle(1030, 115, 4);
    floodfill(1031, 116, 15);
 
    // Implement Speaker
    rectangle(900, 110, 1000, 120);
    setfillstyle(XHATCH_FILL, WHITE);
    floodfill(905, 115, 15);
 
    // Implement Mobile Brand Name
    settextstyle(8, 0, 3);
    outtextxy(895, 375, "SOUNETRA");
 
    // Division Between
    // Screen and Keys
    line(800, 400, 1100, 400);
}
 
void menu_key()
{
    setfillstyle(SOLID_FILL, WHITE);
 
    // Menu Key
    rectangle(930, 420, 980, 470);
    rectangle(920, 410, 990, 480);
    settextstyle(10, 0, 3);
    outtextxy(940, 430, "OK");
    floodfill(925, 415, 15);
 
    // Left Upper Bottom
    rectangle(820, 410, 890, 440);
    rectangle(830, 420, 880, 430);
    floodfill(835, 425, 15);
 
    // Right Upper Bottom
    rectangle(1020, 410, 1090, 440);
    rectangle(1030, 420, 1080, 430);
    floodfill(1035, 425, 15);
 
    // Left Lower Bottom
    rectangle(820, 450, 890, 480);
    setfillstyle(SOLID_FILL, GREEN);
    floodfill(825, 455, 15);
 
    // Right Lower Bottom
    rectangle(1020, 450, 1090, 480);
    setfillstyle(SOLID_FILL, RED);
    floodfill(1025, 455, 15);
}

Producción:

TECLADO MÓVIL

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 *