EasyX的使用(详解版)

本文介绍EasyX图形库的基础使用方法,涵盖窗口创建、颜色设置、基本绘图函数及图像操作等内容,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EasyX的基础概念:

图形化——EasyX的安装-CSDN博客

创建图形化窗口

#include<graphics.h>
#include<conio.h>
int main() {
    //创建绘图窗口,大小为100x100像素。
	//更改为大窗口,像素增大;更改为小窗口,像素缩小
	initgraph(100, 100);
	// 画圆,圆心(40, 40),半径 20
	//     横  纵  半
	circle(40, 40, 20);
	_getch();//按任意键继续
	closegraph();// 关闭绘图窗口
	return 0;
}

学会设置窗口属性

颜色设置:

颜色宏:颜色的英语大写单词。

实现代码

#include<graphics.h>

int main() {
	initgraph(300, 300, 0);//创建窗口,后面的0表示控制台不弹出,1表示控制台弹出,也可以不设置
	setbkcolor(RED);//颜色设置方法一
	cleardevice();//刷新颜色 
	while (1);
	closegraph();//关闭窗口
	return 0;
}

RGB配置。RGB颜色参考方法

1.点击图画软件

2.点击编辑颜色

3.找到RGB参考

4.记住对应数值 ,填入代码内。

实现代码:

#include<graphics.h>

int main() {
	initgraph(300, 300, 0);//创建窗口,后面的0表示控制台不弹出,1表示控制台弹出,也可以不设置
	setbkcolor(RGB(240, 137, 5));//颜色设置方法二
	cleardevice();//刷新颜色 
	while (1);
	closegraph();//关闭窗口
	return 0;
}

基本绘图函数

  1. 线条绘制
    • line(int x1, int y1, int x2, int y2): 绘制从点 (x1, y1) 到点 (x2, y2) 的直线。
    • polyline(POINT *points, int num): 绘制通过一系列点的折线。
    • 代码实现(棋盘制作)
      #include<graphics.h>
      
      int main() {
      	initgraph(300, 300, 0);//创建窗口,后面的0表示控制台不弹出,1表示控制台弹出,也可以不设置
      	//setbkcolor(RED);//颜色设置方法一
      	setbkcolor(RGB(240, 137, 5));//颜色设置方法二
      	cleardevice();//刷新颜色 
          setlinecolor(BLACK);
      	for (int i = 0; i <= 300; i += 40) {//棋盘制作
      		line(0, i, 300, i);
      		line(i, 0, i, 300);
      	}
      	while (1);
      	closegraph();//关闭窗口
      	return 0;
      }	
  2. 矩形绘制
    • rectangle(int left, int top, int right, int bottom): 绘制一个由左上角 (left, top) 和右下角 (right, bottom) 定义的矩形。
    • filledrectangle(int left, int top, int right, int bottom): 绘制并填充一个矩形。
    • roundrect(int left, int top, int right, int bottom, int xradius, int yradius): 绘制一个带有圆角的矩形。
    • filledroundrect(int left, int top, int right, int bottom, int xradius, int yradius): 绘制并填充一个带有圆角的矩形。
  3. 圆形和椭圆绘制
    • circle(int x, int y, int radius): 绘制一个以 (x, y) 为中心、radius 为半径的圆。代码实现:
      #include<graphics.h>
      #include<conio.h>
      int main() {
      	initgraph(100, 100);
      	// 画圆,圆心(40, 40),半径 20
      	//     横  纵  半
      	circle(40, 40, 20);
      	_getch();//按任意键继续
      	closegraph();// 关闭绘图窗口
      	return 0;
      }
    • filledcircle(int x, int y, int radius): 绘制并填充一个圆。
    • ellipse(int x1, int y1, int x2, int y2): 绘制一个由左上角 (x1, y1) 和右下角 (x2, y2) 定义的椭圆。
    • filledellipse(int x1, int y1, int x2, int y2): 绘制并填充一个椭圆。
  4. 多边形绘制
    • polygon(POINT *points, int num): 绘制一个通过一系列点的多边形。
    • filledpolygon(POINT *points, int num): 绘制并填充一个多边形。
  5. 文本输出
    • outtextxy(int x, int y, const char *str): 在指定的 (x, y) 位置输出文本字符串 str
    • puttext(const char *str): 在当前文本位置输出文本字符串 str
    • settextstyle(int fontstyle, int fontwidth, const char *fontname): 设置文本样式,包括字体、宽度和名称。
  6. 图像操作
    • loadimage(const char *filename): 加载一个图像文件并返回一个 IMAGE 结构体指针。
    • putimage(int x, int y, IMAGE *image, int op): 在 (x, y) 位置输出一个图像,op 参数指定图像输出的方式(如正常输出、或异或输出等)。
    • getimage(int left, int top, int right, int bottom, IMAGE *image): 从当前图形界面截取一个矩形区域并保存到 IMAGE 结构体中。
    • 图像操作代码实现:
      #include<graphics.h>
      
      int main() {
      	initgraph(800,600);
      	IMAGE img;//图片变量定义
      	loadimage(&img, "./ras/zp.jpg",800,600);//""里面是路径,800和600是指图片放缩的大小
      	putimage(0, 0, &img);//打印图片
      	while (1);
      	closegraph();
      	return 0;
      }

      注意:属性页的高级中字符集应该改成使用多字节字符集。

    • " "中的路径来源,首先双击图形测试,找到该文件夹打开。文件夹内新建文件夹“ras”,将需要的图片复制粘贴在文件夹内。接下来就可以使用了。

  7. 颜色设置
    • setbkcolor(COLORREF color): 设置背景颜色。
    • setcolor(COLORREF color): 设置当前绘图颜色。
    • setlinecolor(COLORREF color): 设置线条颜色。
    • setfillcolor(COLORREF color): 设置填充颜色。
  8. 其他功能
    • setorigin(int x, int y): 设置坐标原点。
    • arc(int x1, int y1, int x2, int y2, int startangle, int endangle): 绘制一个圆弧。
    • pieslice(int x1, int y1, int x2, int y2, int startangle, int endangle): 绘制一个扇形。
    • floodfill(int x, int y, COLORREF bordercolor): 使用泛洪填充算法填充一个连续区域。

 监听鼠标事件

在EasyX中,可以通过调用GetMouseMsg函数来获取当前的鼠标消息。这个函数返回一个MOUSEMSG结构体,其中包含了鼠标事件的详细信息,如消息类型(uMsg)、鼠标位置(xy)等。

常见的鼠标事件包括:

  • WM_MOUSEMOVE:鼠标移动事件。
  • WM_LBUTTONDOWN:鼠标左键按下事件。
  • WM_LBUTTONUP:鼠标左键释放事件。
  • WM_RBUTTONDOWN:鼠标右键按下事件。
  • WM_RBUTTONUP:鼠标右键释放事件。

其他知识点和函数的代码实现会陆续更新~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值