easyx库的介绍

news2024/11/20 12:39:31

前言

如果想要摆脱黑窗口的限制那么easyx图形库是一个好的选择

easyx的初认识

easyx是针对c++的图形库,可以帮助c/c++上手图形和游戏编程
所以要用easyx必须要用.cpp的后缀
1 easyx的原理
window的图形编程,最终都由window的底层API来实现
2 easyx的颜色
用RGB宏合成颜色,合成的颜色为16进制的一个整数
RGB 红部分 绿部分 蓝部分
每个部分都是0-255
数字越大颜色越浅
255 255 255对应的是白色
3easyx的坐标和设备
坐标的默认原点在窗口的左上角,x轴向右为正,Y轴向下为正,单位为像素点。
easyx的的设备分两种,一种是默认的窗口,另一种是IMAGE。
4 eastx的窗口函数
4-1 intigraph(int width,int height,int flag=NULL);用于初始化窗口
width 指窗口宽度  height指窗口高度  flag窗口的格式,默认为NULL
4-2 closegraph();关闭窗口
4-3 cleardevice();清空绘图设备
对于easyx的介绍到此为止,接下来要敲代码来实现。

easyx实现基本图形的打印

void drawshape()
{
    //绘制一个点
    putpixel(50, 50, RED);
    //设置线条颜色
    setlinecolor(BLUE);
    //设置线条样式
    setlinestyle(PS_SOLID);
    //绘制一条线
    line(0, 0, getwidth(), getheight());//第一个参数为起始点 第二个参数为终点
    //绘制一个正矩形
    rectangle(100, 0, 100 + 50, 0 + 50);//第一个参数指的是左边的起始x坐标
    //第二个参数指的顶部的起始高度(Y轴的参数)
    // 第三个参数指的是矩形右边的x坐标,可以写成100+50,其实就是左加右
    // 第四个参数指的是下面底部的的y坐标,可以写成0+50,其实就是顶加底
    setfillcolor(YELLOW);// 设置填充颜色
    fillrectangle(100, 50, 100 + 50, 50 + 50);// 填充一个矩形
    solidrectangle(100, 100, 100 + 50, 100 + 50);//设置一个无边框的矩形
    //绘制一个圆角矩形,也可以有填充,和无边框
    roundrect(160, 0, 160 + 50, 0 + 50,10,10);
    fillroundrect(160, 50, 160 + 50, 50 + 50, 10, 10);
    solidroundrect(160, 100, 160 + 50, 100 + 50, 10, 10);
    //虽然没有边框但是仍然会有填充
    //绘制一个圆形
    circle(50, 50, 50);
    fillcircle(50, 150, 50);
    solidcircle(50, 250, 50);
    //绘制椭圆
    setfillcolor(GREEN);
    ellipse(220, 0, 220 + 50, 0 + 100);//参数和矩形一致,很明显是一个内接于矩形的椭圆
    fillellipse(280, 0, 280 + 50, 0 + 100);//填充
    solidellipse(340, 0, 340 + 50, 0 + 100);//无边框
    //绘制折线条
    //这个超纲了    emmmmmmmmm
}
int main()
{
    //创造一个图形窗口:长*宽
    initgraph(640, 480,EX_SHOWCONSOLE);
    //设置窗口的背景颜色
    setbkcolor(RGB(235,52,188));
    //用设计的背景颜色填充
    cleardevice();
    //窗口的坐标
    drawshape();
    //防止程序退出
    getchar();
    return 0;
}

看看运行结果


总结


这里简单介绍几种图形的绘制,其实还有很多图形没有讲到,可以在源文件中查看,需要在接下来的学习中不断地巩固

当然了,这些东西最好是要在程序中运行,自己动手才能有所收获

好好看 好好学


 


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 交通拥堵问题 B题 Braess 悖论 原题再现: Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是:有时在一个交通网络上增加一条路段,或者提高某个路段的局部通行能力&a…

CRMEB PRO安装系统配置清单

统在安装完成之后,需要对系统进行一系列的配置,才能正常使用全部的功能,以下是官方整理的配置清单

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

线上真实案例之执行一段逻辑后报错Communications link failure

1.问题发现 在开发某个项目的一个定时任务计算经销商返利的功能时&#xff0c;有一个返利监测的调度&#xff0c;如果某一天返利计算调度失败了&#xff0c;需要重新计算&#xff0c;这个监测的调度就会重新计算某天的数据。 在UAT测试通过&#xff0c;发布生产后&#xff0c…

【C++入门】类的6个默认成员函数、运算符重载、初始化列表、const成员、static成员

目录 引言 构造函数 引入构造函数 构造函数的特征 一些细节 析构函数 析构函数的特性 注意事项 拷贝构造函数 书写格式 使用细节 拷贝构造的典型应用场景 运算符重载 意义与格式 注意事项 赋值运算符重载 const成员 两个经典问题 再谈构造函数—初始化列…

『FPGA通信接口』汇总目录

Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

使用http-parser解析http请求和响应数据

1 简介 http-parser是一个用C编写的HTTP消息解析器&#xff0c;专为高性能HTTP应用程序设计。它能够解析HTTP/1.0和HTTP/1.1的消息&#xff0c;包括头部、主体和连续行。当解析到特定的HTTP元素&#xff08;如请求行、头字段或消息体&#xff09;时&#xff0c;会触发相应的回调…

【前端面试3+1】15 CSS如隐藏元素、css块级元素和行内元素有哪些?两者有什么区别?、JavaScript中“==”与“===”的区别、【丢失的数字】

一、CSS如何隐藏元素&#xff1f; 1、使用 display: none; 这种方法会隐藏元素&#xff0c;并且不占据页面空间。元素会被完全移除&#xff0c;无法通过任何方式显示出来。 .hidden-element {display: none; }2、使用 visibility: hidden; 这种方法会隐藏元素&#xff0c;但仍然…

线段树汇总

线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数&#xff0c;时间复杂度为O(logN)。而未优化的空间复杂度为2N&a…

Office 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到Office 2024安装包”。 打开解压后的文件夹&#xff0c;鼠标右击“YAOCTRI_Installer”选择“以管理员身份运行”。 输入数字“1”自动开始安装。 软件正在安装&#xff0c;请耐心等待&#xff0c;谢谢。 安装完成&#xff0c;点击“…

浅析Redis④:字典dict实现

什么是dict&#xff1f; 在 Redis 中&#xff0c;dict 是指哈希表&#xff08;hash table&#xff09;的一种实现&#xff0c;用于存储键值对数据。dict 是 Redis 中非常常用的数据结构之一&#xff0c;用于实现 Redis 的键空间。 在 Redis 源码中&#xff0c;dict 是一个通用…

初学python记录:力扣39. 组合总和

题目&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限…

Electron 30.0.0 发布,升级 Node 和 V8 引擎

近日&#xff0c;Electron 30.0.0 正式发布&#xff01;你可以通过 npm install electronlatest 进行安装&#xff0c;或者从 Electron 的发布网站下载&#xff0c;继续阅读了解此版本的详细信息。 &#x1f525; 主要更新 Windows 上支持 ASAR 完整性融合。如果未正确配置&am…

【JAVA基础篇教学】第十一篇:Java中字符串操作详解

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十篇&#xff1a;Java中字符串操作详解。 在 Java 编程中&#xff0c;字符串是一种常见的数据类型&#xff0c;通常用于存储文本信息。Java 提供了丰富的字符串操作方法&#xff0c;可以对字符串进行分割、截取、查找…

网络变压器在网络分析仪上能通过测试,装上设备后网速达不到呢?

Hqst华轩盛(石门盈盛)电子导读&#xff1a;今天和大家一起探讨网络变压器在网络分析仪上能通过测试&#xff0c;装上设备后网通设备网速达不到的可能原因及其处理方式 一、出现这种情况可能有以下原因&#xff1a; 1.1. 设备兼容性问题&#xff1a;设备其它元器件与 网络…

快速掌握缓存技术:学习多个缓存供应商(ehcache,redis,memcached,jetcache,j2cache)

缓存技术 缓存模拟缓存Spring缓存技术第三方缓存技术Ehcache缓存供应Redis缓存memcached缓存&#xff08;国内&#xff09; jetcache缓存供应商jetcache的基本使用设置外部服务设置本地服务 jetcache方法缓存j2cache 缓存 什么是缓存 缓存是一种介于数据永久存储介质与数据应用…

graphviz嵌入latex的方法

效果&#xff1a; graphviz graphviz是一个开源的工具包&#xff0c;用DOT语言编写可以自动转换成图形&#xff0c;因为写法非常简单&#xff0c;只用代码描述好连接关系&#xff0c;就能直接得到最终的图形&#xff0c;所以优势很大。 latex&#xff1a; 就不介绍了 graphvi…

单片机项目中太多全局变量有什么弊端?

最近有读者遇到了这样的问题&#xff1a; 入职接到前同事丢下的“烂摊子”&#xff0c;项目中很多全局变量 问我&#xff1a;全局变量太多有哪些弊端&#xff1f;该如何规避&#xff0c;以及如何管理全局变量等。 全局变量太多有哪些弊端&#xff1f; 真正做过项目的同学应该都…

备战2024年上海初中生古诗文大会:单选题真题示例和独家解析

上海市中小学生的初中生古诗文大会——即上海中学生古诗文大会&#xff08;初中组&#xff09;和小学生古诗文大会&#xff08;比赛&#xff09;除了题型略有不同外&#xff0c;最主要的是考察的内容深度和广度不同&#xff0c;初中的题目中对于文言文的考察大幅增加&#xff0…

SpringBoot相关知识点总结

1 SpringBoot的目的 简化开发&#xff0c;开箱即用。 2 Spring Boot Starter Spring Boot Starter 是 Spring Boot 中的一个重要概念&#xff0c;它是一种提供依赖项的方式&#xff0c;可以帮助开发人员快速集成各种第三方库和框架。Spring Boot Starter 的目的是简化 Sprin…