C++程序 使用计算机图形学绘制交通灯模拟

C++程序 使用计算机图形学绘制交通灯模拟

在计算机中,可以使用graphics.h直接提供不同坐标的绘图函数,例如圆形、矩形等。通过使用这些形状,可以绘制不同的对象。本文重点介绍如何在Turbo C++中制作交通灯模拟。

使用的函数:

  • delay(n) 它被用来在 N 毫秒内保持相同的屏幕状态。由于程序执行速度过快,因此使用延迟函数来观察程序。
  • setcolor(n) 此函数用于设置光标的颜色。这里的 N 是预定义于graphics.h头文件中的颜色。
  • settextstyle() / settextjustify() 此函数用于文本指针的样式设置。
  • rectangle(x1, y1, x2, y2) 此函数用于绘制一个矩形,其中x1,y1和x2,y2是直线的坐标。
  • circle(x, y, r) 这是一个圆形的表示,其中x,y是圆的中心坐标,r是圆的半径。

方法:

  • 首先,使用函数 initgraph() 初始化图形模式。
  • 使用rectangle()函数创建矩形,并使用 setcolor() 函数填充两条线之间的中间部分。
  • 使用setcolor()、floodfill()和setfillstyle()等函数绘制3个圆,并根据需要对它们进行颜色/样式处理。
  • 重复上述过程,直到交通信号灯完成。
  • 在所需位置使用 delay() 函数来保持屏幕。

下面是上述方法的程序:

// C++程序,用于上述方法
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <iostream.h>
#include <stdlib.h>
 
// 驱动程序代码
void main()
{
    clrscr();
    int gd = DETECT, gm, midx, midy;
 
    // 传递三个参数给initgraph函数来初始化图形模式
    initgraph(&gd, &gm, "C:\\TC\\BGI");
 
    midx = getmaxx() / 2;
    midy = getmaxy() / 2;
 
    // 将介绍文本的颜色设置为青色
    setcolor(CYAN);
 
    // 在下面对文本进行样式设置
    settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4);
    settextjustify(CENTER_TEXT, CENTER_TEXT);
    outtextxy(midx, midy - 10, "交通信号灯模拟");
    outtextxy(midx, midy + 10, "按任意键开始");
    getch();
    cleardevice();
    setcolor(WHITE);
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
 
    // 矩形线
    rectangle(midx - 30, midy - 80, midx + 30, midy + 80);
 
    // 红灯圆形
    circle(midx, midy - 50, 22);
    setfillstyle(SOLID_FILL, RED);
    floodfill(midx, midy - 50, 22);
    setcolor(BLUE);
 
    // 红光内部文本
    outtextxy(midx, midy - 50, "停止");
 
    // 2秒的延迟
    delay(2000);
    graphdefaults();
    cleardevice();
 
    setcolor(WHITE);
 
    // 为交通信号灯绘制矩形线
    rectangle(midx - 30, midy - 80,
              midx + 30, midy + 80);
 
    // 绘制黄色光圆形
    circle(midx, midy - 50, 22);
    setfillstyle(SOLID_FILL, YELLOW);
    floodfill(midx, midy, WHITE);
    setcolor(BLUE);
 
    // 将内部文本设为就绪
    outtextxy(midx - 18, midy - 3, "就绪");
    delay(2000);
    cleardevice();
 
    setcolor(WHITE);
 
    // 为交通信号灯绘制矩形线
    rectangle(midx - 30, midy - 80,
              midx + 30, midy + 80);
 
    // 绿灯圆形
    circle(midx, midy + 50, 22);
    setfillstyle(SOLID_FILL, GREEN);
    floodfill(midx, midy + 50, WHITE);
    setcolor(BLUE);
 
    // 将内部文本设为前进
    outtextxy(midx - 7, midy + 48, "前进");
    setcolor(RED);
    settextstyle(TRIPLEX_FONT,
                 HORIZ_DIR, 4);
 
    outtextxy(midx - 150, midy + 100,
              "Brrrmmm");
 
    getch();
}  

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例