EasyX的使用(详解版)

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): 使用泛洪填充算法填充一个连续区域。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/417851.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为数通方向HCIP-DataCom H12-821题库(单选题:481-500)

第481题 以下关于基于SD-WAN思想的EVPN互联方案的描述,错误的是哪一项? A、通过部署独立的控制面,将网络转发和控制进行了分离,从而实现了网络控制的集中化 B、通过对WAN网络抽象和建模,将上层网络业务和底层网络具体实现架构进行解耦,从而实现网络自动化 C、通过集中的…

上位机图像处理和嵌入式模块部署(当前机器视觉新形态)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 过去的机器视觉处理&#xff0c;大部分都是集中在上位机、或者是服务器领域&#xff0c;这种形式维持了很长的时间。这种业务形态下&#xff0c;无…

javaee教程郑阿奇课后答案,三年经验月薪50k我是怎么做到的

个人背景 如标题所示&#xff0c;我的个人背景非常简单&#xff0c;Java开发经验1年半&#xff0c;学历普通&#xff0c;2本本科毕业&#xff0c;毕业后出来就一直在Crud&#xff0c;在公司每天重复的工作对我的技术提升并没有什么帮助&#xff0c;但小镇出来的我也深知自我努…

这一步一步爬的伤痕累累

一、网安专业名词解释 ① CTF CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进…

数据结构-----再谈String,字符串常量池,String对象的创建、intern方法的作用

文章目录 1.字符串常量池1.1. 创建对象的思考2.2. 字符串常量池(StringTable)1.3. 再谈String对象创建1.4. intern方法 1.字符串常量池 1.1. 创建对象的思考 下面两种创建String对象的方式相同吗&#xff1f; public static void main(String[] args) {String s1 "hel…

Jmeter系列(5)线程数到底能设置多大

疑惑 一台设备的线程数到底可以设置多大&#xff1f; 线程数设置 经过一番搜索找到了这样的答案&#xff1a; Linux下&#xff0c;2g的 java内存&#xff0c;1m 的栈空间&#xff0c;最大启动线程数2000线程数建议不超过1000jmeter 能启动多少线程&#xff0c;由你的堆内存…

Decision Transformer

DT个人理解 emmm, 这里的Transformer 就和最近接触到的whisper一样,比起传统Transformer,自己还设计了针对特殊情况的tokens。比如whisper里对SOT,起始时间,语言种类等都指定了特殊tokens去做Decoder的输入和输出。 DT这里的作为输入的Tokens由RL里喜闻乐见的历史数据:…

docker save 命令 docker load 命令 快速复制容器

docker save 命令 docker load 命令 1、docker save 命令2、docker load 命令 1、docker save 命令 docker save 命令用于在系统上把正在使用的某个容器镜像 导出成容器镜像文件保存下载&#xff0c;以便在其他系统上导入这个容器镜像文件 以便快速在其他服务器上启动相同的容…

(正规api接口代发布权限)短视频账号矩阵系统实现开发--技术全自动化saas营销链路生态

短视频账号矩阵系统实现开发--技术全自动化saas营销链路生态源头开发&#xff08;本篇禁止抄袭复刻&#xff09; 一、短视频矩阵系统开发者架构 云罗短视频矩阵系统saas化系统&#xff0c;开发层将在CAP原则基础上使用分布式架构,对此网站的整体架构采用了基于B/S三层架构模式…

使用全局事件总线实现任意组件间的通讯

本文以vue2中爷孙组件通讯为例&#xff0c;需求是点击孙组件的按钮&#xff0c;实现关闭爷组件的弹窗。 全局事件总线是通过Vue实例的事件系统来实现组件之间的通讯&#xff0c;可以方便地在任何组件中进行事件的触发和监听。 以下是使用全局事件总线实现爷孙组件通讯的步骤&a…

33. 【Linux教程】Linux 用户组

前面小节介绍了 Linux 用户相关的增删改查&#xff0c;本小节介绍 Linux 用户组&#xff0c;Linux 系统中采取了一种安全机制&#xff08;即用户组&#xff09;&#xff0c;用户组可以允许多个 Linux 用户共享同一种权限。 1. 用户组介绍 Linux 是多任务多用户的操作系统&…

Vite 构建的 Vue3 项目如何整合 Monaco Editor 代码编辑器

目录 &#x1f981; 一. 前言&#x1f981; 二. 探索过程2.1 安装2.2 配置 Monaco Editor2.3 编写 Monaco Editor 代码编辑器2.3.1 创建 Coding Editor 组件2.3.2 父组件使用 CodingEditor 组件 2.4 效果展示 三. 总结 &#x1f981; 一. 前言 各位好&#xff01;我是&#x1…

什么是智能运维产品线和服务线

智能运维产品线和服务线涵盖了一系列自动化和智能化的技术和服务&#xff0c;旨在提升IT运维的效率和有效性。智能运维&#xff08;AIOps&#xff09;利用大数据、分析技术和机器学习能力来自动执行和简化运营工作流程&#xff0c;包括收集和汇总多源IT基础架构组件的数据、应用…

1、docker 基础命令

1、docker 运行镜像 docker run image tag 2、创建dockerfile&#xff08;构建容器的相关命令&#xff09; vim DockerFile 3、docker 构建容器镜像 docker build -t <image_name> . 4、docker 分层 5、查看镜像 docker images 6、docker 执行 docker run --name &…

【重要公告】BSV区块链协会全新推出“网络访问规则NAR”

​​发表时间&#xff1a;2024年2月15日 BSV区块链协会正式宣布已为BSV区块链推出一套全新的网络访问规则&#xff08;Network Access Rules&#xff0c;以下简称“NAR”&#xff09;。 NAR是一整套规则&#xff0c;用于规范BSV协会与BSV网络节点之间的关系。它基于比特币最初…

2024年怎么选类目?最容易起店的类目推荐,细分类目蕴含机会

大家好&#xff0c;我是电商花花。 做抖音小店选什么类目一直都是我们新手做店的一个大难题。 类目选对了&#xff0c;对于我们店铺就很容易出单&#xff0c;起店&#xff0c;如果选错了&#xff0c;店铺不出单或者没流量也是一个常见的事情。 而选品选类目本身就没有什么捷…

SikuliX使用介绍

1.SikuliX基本介绍 Sikuli 是 2009 年由 Tsung-Hsiang Chang 和 Tom Yeh在麻省理工学院用户界面设计小组的一个开源研究项目。1 年&#xff0c;两人都离开了 Sikuli-X-0.3rc2012 的项目&#xff0c;RaiMan决定接管开发和支持&#xff0c;并将其命名为 SikuliX。 S…

Pyhton的组合数据类型

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命对某些人来说是美丽的&#xff0c…

【MATLAB】MVMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 MVMD_MFE_SVM_LSTM神经网络时序预测算法结合了多变量多尺度分解&#xff08;MVMD&#xff09;、多尺度特征提取&#xff08;MFE&#xff09;、支持向量机&#xff08;SVM&#xff09;和长…

Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 Redis安装和配置 1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/ 或者使用 wget 命令下载&#xff1a;wget http://download.redis.io/releases/redis-6.0.9.tar.gz 2、下载使用上传到阿里…