En las computadoras, graphics.h se puede usar para proporcionar funciones directas para dibujar diferentes coordenadas, como círculos, rectángulos, etc. Usando estas formas, se pueden dibujar diferentes objetos. Este artículo se enfoca en cómo hacer una simulación de semáforo en Turbo C++ .
Funciones utilizadas:
- delay(n) : Se utiliza para mantener la misma pantalla durante N milisegundos. Como la ejecución del programa es demasiado rápida, por lo tanto, para observar el programa, se utiliza la función de retardo.
- setcolor(n) : Esta función se utiliza para establecer el color del cursor. Aquí N es el color que está predefinido en el archivo de encabezado graphics.h
- settextstyle()/ settextjustify() : esta función se utiliza para diseñar el puntero de texto.
- rectángulo (x1, y1, x2, y2) : esta función se utiliza para dibujar un rectángulo donde x1, y1 y x2, y2 son las coordenadas de una línea.
- circle(x, y, r) : Esta es una representación de un círculo donde x, y son las coordenadas del centro del círculo y r es el radio del círculo.
Acercarse:
- Primero, inicialice el modo gráfico usando la función initgraph() .
- Cree un rectángulo usando la función rectángulo() y rellene la parte media de dos líneas usando la función setcolor() .
- Dibuje 3 círculos y coloréelos o diseñelos según corresponda usando funciones como setcolor() , floodfill() y setfillstyle() .
- Repita el proceso hasta que el semáforo no esté completo.
- Use la función de retraso() en el medio para mantener la pantalla donde queremos.
A continuación se muestra el programa para el enfoque anterior:
C++
// C++ program for the above approach #include <conio.h> #include <dos.h> #include <graphics.h> #include <iostream.h> #include <stdlib.h> // Driver Code void main() { clrscr(); int gd = DETECT, gm, midx, midy; // Passed three arguments to the // initgraph function to initialize // graphics mode initgraph(&gd, &gm, "C:\\TC\\BGI"); midx = getmaxx() / 2; midy = getmaxy() / 2; // Set color of intro text as cyan setcolor(CYAN); // Below just styling the text settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4); settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy - 10, "TRAFFIC LIGHT SIMULATION"); outtextxy(midx, midy + 10, "PRESS ANY KEY TO START"); getch(); cleardevice(); setcolor(WHITE); settextstyle(DEFAULT_FONT, HORIZ_DIR, 1); // rectangle lines rectangle(midx - 30, midy - 80, midx + 30, midy + 80); // Circle for red light circle(midx, midy - 50, 22); setfillstyle(SOLID_FILL, RED); floodfill(midx, midy - 50, 22); setcolor(BLUE); // Text inside red light outtextxy(midx, midy - 50, "STOP"); // Delay of 2 sec delay(2000); graphdefaults(); cleardevice(); setcolor(WHITE); // Drawing lines of rectangle // for traffic light rectangle(midx - 30, midy - 80, midx + 30, midy + 80); // Drawing yellow circle for light circle(midx, midy - 50, 22); setfillstyle(SOLID_FILL, YELLOW); floodfill(midx, midy, WHITE); setcolor(BLUE); // Setting inner text to ready outtextxy(midx - 18, midy - 3, "READY"); delay(2000); cleardevice(); setcolor(WHITE); // Drawing lines of rectangle // for traffic light rectangle(midx - 30, midy - 80, midx + 30, midy + 80); // Circle for green light circle(midx, midy + 50, 22); setfillstyle(SOLID_FILL, GREEN); floodfill(midx, midy + 50, WHITE); setcolor(BLUE); // Setting inner text to GO outtextxy(midx - 7, midy + 48, "GO"); setcolor(RED); settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4); outtextxy(midx - 150, midy + 100, "Brrrmmm"); getch(); }
Producción: