C++ easyX小程序(介绍几个函数的使用)

        本小程序通过代码和注释,介绍了easyX窗口及控制台窗口的设置方法;还介绍了easyX中关于颜色、线型、画圆、画方、显示文字以及鼠标消息处理等函数的使用方法。为便于理解,本程序同时使用控制台和easyX窗口,由控制台控制程序运行、由easyX窗口显示效果。本程序在VS2022上运行通过(注意:需要提前安装easyX)。
#include <iostream>
#include <string>
#include <sstream> //使用stringstream对象需包含
#include <graphics.h> //使用easyX需包含
using namespace std;
int main()
{
    initgraph(640,480,1); //设置easyX窗口
         //参1、2 easyX窗口大小 
         //参3 0--仅显示easyX窗口 1--同时显示控制台窗口
    system("mode con cols=65 lines=12"); //设置控制台窗口
         //以字符串方式设置控制台窗口大小 cols为列最小值13,lines为行最小值1
    cout << "在(100,100)位置画一个背景蓝色 线宽5 线颜色红 半径50的圆" << endl;
    setbkcolor(BLUE);//设置背景颜色
    cleardevice();//清屏
    setlinecolor(RED);//设置线条颜色
    setlinestyle(0,5);//设置线型
    circle(100,100,50);//画一个半径50的圆
    system("pause");
    cout << "在(100,100)位置画一个黄色填充 半径50的圆" << endl;
    cleardevice();//清屏
    setfillcolor(YELLOW);//设置填充色
         //知识点:我们在画下面的填充圆时,仅对填充颜色进行了设置,对背景色、线宽、线颜色
         //没有设置,那么未设置的参数程序会继续使用前面的设置,也就是这里画出的圆除了中间
         //填充有黄色外,外圈仍带有一个红边。如果从开始就没有进行任何设置,那么程序会使用
         //系统的缺省设置。包括本行的填充色以及后边的字体、颜色等等都是这样。系统当前的设
         //置情况有专门的函数可以获得,无需用脑记。
    fillcircle(100,100,50);//画填充圆
    system("pause");
    cout << "在(100,100)位置输出一行颜色红色、楷体、高度50的字符串" << endl;
    cleardevice();//清屏
    settextcolor(RED);
    settextstyle(30,0,"楷体");//参2 0代表缺省
    setbkmode(TRANSPARENT);//背景透明模式
    outtextxy(100,100,TEXT("红色、楷体、高度50的字符串"));
    system("pause"); 
    cout << "在一个填充矩形框中居中显示文字" << endl;
    cleardevice();//清屏
    fillrectangle(200,50,500,100); //填充矩形框 参1、2 左上角坐标 参3、4 右下角坐标
    string str="好好学习 天天向上";
    int w=textwidth(str.c_str()); //获得字符串宽度
    int h=textheight(str.c_str()); //获得字符串高度
    outtextxy(200+(500-200)/2-w/2,50+(100-50)/2-h/2,str.c_str()); //居中计算公式
    system("pause"); 
    cout << "显示鼠标左、右键按下事件" << endl;
    stringstream s_i; 
        //stringstream包含在sstream头文件中,这是一个用于string类型与int类型互转的类,用起来
        //很方便。具体使用方法见后。
    cleardevice();//清屏
    outtextxy(50,50,TEXT("请在空白处单击鼠标左键(单击右键退出程序):"));
    settextstyle(15, 0, "宋体");//把下面要显示坐标的字号设的小一些
    while(1)
    {
        if(MouseHit()) 
        { MOUSEMSG msg=GetMouseMsg();
            switch(msg.uMsg)
            {
            case WM_LBUTTONDOWN:
                s_i << "左键在(" <<msg.x << "," << msg.y << ")被按下\n";
                    //s_i是前边声明的一个stringstream对象,是一个流对象;不仅可以传入string型,
                    //也可已传入int等其他类型;作为与string类型的中介很是方便。
                s_i>>str; //从stringstream类型传入string类型
                s_i.clear(); //stringstream类型对象用后要清空,否则影响后续使用。
                outtextxy(msg.x, msg.y, str.c_str());
                    break;
            case WM_RBUTTONDOWN:
                closegraph();//将easyX窗口关闭
                exit(0); //退出程序
            }
        }
    }
    return 0;
}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,您需要在计算机上安装 EasyX 图形库。接下来,您需要在 C 语言程序中包含 EasyX 库文件。在开始编写烟花程序之前,您还需要了解一些 EasyX 图形库的基本函数。 下面是使用 EasyX 图形库编写烟花程序的一些基本步骤: 1. 初始化 EasyX 图形库。在程序开头,使用 `initgraph()` 函数初始化图形库。 2. 设置画布。使用 `setbkcolor()` 函数设置画布的背景颜色。 3. 绘制烟花。使用 EasyX 图形库的绘图函数(如 `circle()`、`line()` 等)在画布上绘制烟花的各个部分。 4. 显示烟花。使用 `delay_ms()` 函数设置延迟时间,然后使用 `cleardevice()` 清除画布,再次使用绘图函数绘制烟花。反复执行这个过程,就可以产生烟花动画效果。 5. 关闭 EasyX 图形库。在程序结尾,使用 `closegraph()` 函数关闭图形库。 下面是一个使用 EasyX 图形库编写的简单的烟花程序的示例: ``` #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main() { // 初始化图形库 initgraph(640, 480); // 设置背景颜色 setbkcolor(BLACK); // ### 回答2: 使用C语言和EasyX图形库编写烟花程序可以通过以下步骤实现: 1. 创建一个窗口,并设置窗口的大小和标题。 2. 在窗口中绘制一个黑色的背景,并在窗口底部绘制一个填充为黑色的矩形,作为烟花爆炸的效果。 3. 使用随机数生成器生成不同颜色的烟花爆炸效果,并在矩形上方绘制一个白色的圆形,作为烟花的燃烧效果。 4. 在窗口中循环绘制烟花的效果,每帧绘制一个新的烟花,并将之前绘制的烟花向上移动一段距离,模拟烟花升空的效果。 5. 当烟花爆炸到达矩形上方时,重新生成一个新的烟花,并将烟花的位置设置为矩形下方的随机位置。同时,重新生成一个随机颜色的烟花爆炸效果。 6. 在循环中使用延时函数控制烟花的绘制速度,以及使用消息循环函数处理窗口的关闭事件,确保程序可以正常退出。 通过以上步骤,可以实现一个用C语言和EasyX图形库编写的烟花程序。程序运行时,烟花将会在窗口中升空并爆炸,再升空爆炸,循环往复,形成一个连续的烟花效果。在每一次爆炸时,烟花都会发出不同颜色的火花,使得烟花效果更加绚丽多彩。 ### 回答3: 使用C语言和easyX图形库编写烟花程序是一种常见的图形编程练习。以下是一个简单的烟花程序的示例代码,并介绍其实现原理: ```c #include <graphics.h> // easyX图形库头文件 // 烟花程序函数 void Firework(int x, int y) { for (int i = 1; i <= 60; i++) { // 用60个圆点表示烟花 setcolor(RGB(rand() % 256, rand() % 256, rand() %256)); // 随机设置颜色 int radius = i * 2; // 在每个循环中,逐渐增大圆点半径 circle(x, y, radius); // 画圆 Sleep(20); // 延时控制圆点绘制速度 cleardevice(); // 清空屏幕 } } int main() { initgraph(800, 600); // 初始化图形窗口 while (!kbhit()) { // 直到按下键盘任意键退出循环 int x = rand() % 800; // 随机生成烟花的起始坐标 int y = rand() % 600; Firework(x, y); // 调用烟花函数 } closegraph(); // 关闭图形窗口 return 0; } ``` 上述代码中,`Firework`函数用于绘制烟花效果。它使用一个循环来逐渐增大圆点的半径,每次循环都绘制一个圆点,并随机设置其颜色。通过调整圆点绘制的速度和循环次数,可以实现不同的烟花效果。`main`函数则初始化图形窗口,通过调用`Firework`函数来绘制不同的烟花。在按下键盘任意键之前,程序将一直循环绘制烟花。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值