easyx之图形库复习--自制写轮眼的图形绘制

引子效果图如下:

什么是easyx?

EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。

个人认为有点像api,web前段等功能

如何画(针对我效果图而言需要的而言)?

基础库?

#include<easyx.h>
#include<stdio.h>
#include<graphics.h>
#define b 3.14

基础函数

1,initgraph()这个函数用于初始化绘图窗口

width 绘图窗口的宽度。

height 绘图窗口的高度。

flag 绘图窗口的样式,默认为 NULL。

initgraph(int width,int height,int flag = NULL
);

2,closegraph()这个函数用于关闭绘图窗口

3,setaspectratio()函数用于设置当前缩放因子void setaspectratio(float xasp,float yasp);

as:setaspectratio(1, -1);表示在x方向上是正,y方向上是负。即我们常见的坐标轴!

4,setbkcolor()这个函数用于设置当前设备绘图背景色。

表示颜色的方法

    1 . 用预定义常量表示颜色

常量			值			颜色
--------		--------	--------
BLACK			0			黑
BLUE			0xAA0000	蓝
GREEN			0x00AA00	绿
CYAN			0xAAAA00	青
RED				0x0000AA	红
MAGENTA			0xAA00AA	紫
BROWN			0x0055AA	棕
LIGHTGRAY		0xAAAAAA	浅灰
DARKGRAY		0x555555	深灰
LIGHTBLUE		0xFF5555	亮蓝
LIGHTGREEN		0x55FF55	亮绿
LIGHTCYAN		0xFFFF55	亮青
LIGHTRED		0x5555FF	亮红
LIGHTMAGENTA	0xFF55FF	亮紫
YELLOW			0x55FFFF	黄
WHITE			0xFFFFFF	白

   2. 用 16 进制数字表示颜色

     16 进制的颜色表示规则为:0xbbggrr (bb=蓝,gg=绿,rr=红)

      3. 用 RGB 宏合成颜色

5,cleardevice()这个函数使用当前背景色清空绘图设备

6,setlinecolor()这个函数用于设置当前设备画线颜色

7,setfillstyle()这个函数用于设置当前设备填充样式

8,setbkmode()这个函数用于设置当前设备图案填充和文字输出时的背景模式

9,settextcolor()这个函数用于设置当前文字颜色。

10,settextstyle()这个函数用于设置当前文字样式

void settextstyle(int nHeight,int nWidth,LPCTSTR lpszFace,int nEscapement,int nOrientation,int nWeight,bool bItalic,bool bUnderline,bool bStrikeOut,BYTE fbCharSet,BYTE fbOutPrecision,BYTE fbClipPrecision,BYTE fbQuality,BYTE fbPitchAndFamily
);

11,outtextxy()这个函数用于在指定位置输出字符串

12,circle()画圆

13,putpixel()这个函数用于画点

14,line()画线

15,ellipse()画椭圆

16,rectangle()这个函数用于画无填充的矩形

17,arc()这个函数用于画椭圆弧

18,polygon()这个函数用于画无填充的多边形。

19,getchar()阻塞作用,不然太快!

代码示例:

int main()
{
    initgraph(800,600);//初始化绘图窗口
    setorigin(400, 300);//改变逻辑坐标,根据物理坐标
    setaspectratio(1, -1);//翻转逻辑坐标
    setbkcolor(BLACK);//摄制背景颜色
    cleardevice();//清屏
    setlinecolor(GREEN);//设置线条颜色
    //setfillstyle(BS_SOLID, 5);
    setfillstyle(BS_HATCHED, 5);//线条风格
    setbkmode(TRANSPARENT);//字体背景为透明色
    settextcolor(GREEN);//字体为绿色
    settextstyle(30, 0,"华文新魏");
    outtextxy(-365, 260, "Writing wheel eyes");//输出字符串(自适应字符集)
    circle(0, 0, 300);//画圆形
    putpixel(0, 0, YELLOW);//画点,坐标+颜色
    putpixel(200, 200, RED);
    putpixel(-200, 200, WHITE);
    putpixel(200, -200, LIGHTGREEN);
    putpixel(-200, -200, LIGHTBLUE);
    for (int i = 0; i < 1000; i++)
    {
        int x = rand() % (800 + 1)-400;
        int y = rand() % (600 + 1)-300;
        putpixel(x, y, LIGHTGREEN);
    }
    line(200, 200, -200, -200);//直线的函数
    line(200, -200, -200, 200);
    ellipse(150,150,-150,-150);//椭圆的函数
    rectangle(150, 150, -150, -150);//矩形的函数
    //pie(100, 100, -100, -100, 0,b / 4);//扇形
    arc(100, -100, -100, 100, 0, b / 4);//圆弧线
    arc(100, -100, -100, 100, b/2, 3*b / 4);
    arc(100, -100, -100, 100,b, 5*b / 4);
    arc(100, -100, -100, 100,3*b/2, 7*b / 4);
    POINT point1[] = { {0,300},{200,200},{-200,200} }; 
    POINT point2[] = { {0,-300},{-200,-200},{200,-200} }; 
    POINT point3[] = { {-300,0},{-200,200},{-200,-200} }; 
    POINT point4[] = { {300,0},{200,200},{200,-200} }; 
    polygon(point1, 3);//多边形的绘制
    polygon(point2, 3);//多边形的绘制
    polygon(point3, 3);//多边形的绘制
    polygon(point4, 3);//多边形的绘制
    getchar();//柱塞程序的运行
    closegraph();//关闭图形窗口
    return 0;
}

有机会:我还会展示更多图形的绘制!

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

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

相关文章

AI PPT生成器,一键在线智能生成PPT工具

PPT作为商业沟通和教育培训中的重要工具&#xff0c;PPT制作对于我们来说并不陌生。但是传统的PPT制作不仅耗时&#xff0c;而且想要做出精美的PPT&#xff0c;需要具备一定的设计技能。下面小编就来和大家分享几款AI PPT工具&#xff0c;只要输入主题&#xff0c;内容就可以在…

1台SW工作站5人同时使用能实现吗

在当今的数字化时代&#xff0c;高效的工作方式和技术创新是企业竞争力的重要组成部分。SolidWorks作为一款功能强大的三维设计软件&#xff0c;广泛应用于机械、电子、建筑等多个领域。然而&#xff0c;随着企业规模的扩大和团队人数的增加&#xff0c;如何充分利用有限的资源…

关于undo的问题

以下都查看下 undo保留时间&#xff1a; show parameter undo; 查UNDO段状态及自动调整的保留时间命令&#xff1a; select BEGIN_TIME,END_TIME,MAXQUERYLEN,MAXQUERYSQLID,TUNED_UNDORETENTIONfrom V$UNDOSTAT Order By begin_time Desc; 查UNDO段EXPIRED等使用情况&#…

大模型网信办备案全网最详细流程【附附件】

本文要点&#xff1a;大模型备案最详细说明&#xff0c;大模型备案条件有哪些&#xff0c;《算法安全自评估报告》模板&#xff0c;大模型算法备案&#xff0c;大模型上线备案&#xff0c;生成式人工智能(大语言模型)安全评估要点&#xff0c;网信办大模型备案。 大模型备案安…

Linux企业 集群批量管理-秘钥认证

集群批量管理-秘钥认证 概述 管理更加轻松&#xff1a;两个节点&#xff0c;通过秘钥认证形成进行访问&#xff0c;不需要输入密码&#xff0c;单向服务要求&#xff08;应用场景&#xff09;&#xff1a; 一些服务在使用前要求我们做秘钥认证 手动写批量管理脚本名字&#x…

来自 Kubecon Paris 的快讯

一年一度的 KubeconEU 审查时间到了——它未经过滤&#xff0c;偶尔不受 CNCF 的欢迎——但剧透警告&#xff0c;巴黎取得了巨大的成功。我们总是爱这里的人&#xff0c;我们并不总是爱场地或演出管理&#xff0c;但巴黎是一场胜利&#xff0c;更重要的是&#xff0c;Kubernete…

德国慕尼黑智慧能源展去了多少家国内充电企业?

无论是为了突破本土市场的局限&#xff0c;出海开拓更广阔的国际市场需求&#xff0c;增加销售额&#xff0c;分散市场风险&#xff0c;还是为了通过出海获得国际经验后以反哺国内市场。 各大行业都出现了“要么出海&#xff0c;要么出局”的声音。扬帆出海&#xff0c;参与全球…

C语言 | Leetcode C语言题解之第155题最小栈

题目&#xff1a; 题解&#xff1a; //单调栈 单调递减 typedef struct {//正常 stackint stack[10000];int stackTop;//辅助 stackint minStack[10000];int minStackTop; } MinStack;MinStack* minStackCreate() {MinStack* newStack (MinStack *) malloc(sizeof(MinS…

Android SurfaceFlinger——SF与HWC交互流程(六)

在上一篇 HWC2On1Adapter 初始化完成后&#xff0c;调用 initWithDevice() 实例化 HwcHal 对象&#xff0c;然后创建高级接口&#xff08;IComposer&#xff09;&#xff0c;使得调用者能够通过这个接口与硬件进行交互。这里我们就来看一下 HwcHal 和 IComposer 的初始化流程。…

到底什么是载波聚合?

载波聚合技术是无线通信系统中的一项关键创新&#xff0c;它极大地提升了数据传输的效率和速度。 这项技术的核心思想其实相当直观&#xff0c;即&#xff1a;如果能够将多个独立的通信路径或连接聚合起来&#xff0c;那么相比单一路径&#xff0c;就能够传输更多的信息。 这就…

mysql设置密码复杂度策略,登录失败次数限制

在配置文件中加入如下配置&#xff0c;重启mysql服务 [mysqld] #密码复杂度插件 plugin-load-addvalidate_password.so validate-passwordFORCE_PLUS_PERMANENT validate_password_policy2 # 0简单 1普通 2困难 validate_password_length9 # 密码长度限制 #登录失败次数、时间…

描述React Hooks中的useMemo和useCallback的区别和用途。

React Hooks API中的useMemo和useCallback都是用于优化性能的钩子&#xff0c;但它们的用途和工作方式略有不同&#xff1a; 推荐大家看看我过往的文章 useMemo useMemo是一个性能优化钩子&#xff0c;它返回一个记忆化的值。useMemo可以避免在组件渲染时进行昂贵的计算或操作…

一文读懂数据仓库ODS层

数据仓库一般分为三层&#xff0c;分别为数据贴源层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff08;ADS&#xff0c;Application Data Service&#xff09;。其中…

方舟云康亏损收窄:三年近10亿销售成本,平均付费及月活仍大幅承压

《港湾商业观察》施子夫 三度递表后&#xff0c;终于通过聆讯&#xff0c;方舟云康控股有限公司(以下简称&#xff0c;方舟云康)有望近期内挂牌港交所。方舟云康的国内运营主体为广州方舟云康信息科技集团有限公司、广州方舟医药有限公司。 值得关注的是&#xff0c;亏损的难…

Python中文自然语言处理(NLP)中文分词工具库之pkuseg使用详解

概要 在中文自然语言处理(NLP)中,分词是一个基础且关键的任务。pkuseg 是由北京大学开发的一个中文分词工具,专为处理现代汉语而设计。它采用了先进的深度学习技术,能够准确地进行中文分词,同时支持自定义词典和多领域分词。本文将详细介绍 pkuseg 库,包括其安装方法、…

《图数据库:理论与实践》书籍销售火爆,二次印刷重磅来袭!

好书共享&#xff0c;就在此刻&#xff01; 由创邻科技联合电子工业出版社匠心打磨三年&#xff0c;最终成稿的图数据库书籍《图数据库&#xff1a;理论与实践》发行上线后&#xff0c;获得了广泛好评&#xff0c;各平台销量迅速破千&#xff0c;并荣登京东 “数据库图书榜”热…

【Nprogress】页面跳转进度条

【Nprogress】页面跳转进度条 介绍安装引入并简单使用基本用法配置项常用方法 参考文档&#xff1a; 【博主&#xff1a;码农键盘上的梦】vue使用Nprogress进度条功能实现 【博主&#xff1a;夜幕506】vue项目的进度条插件 – nprogress 【官方项目地址】https://www.npmjs.com…

【C语言】数据的存储

本章重点 1. 数据类型详细介绍 2. 整形在内存中的存储&#xff1a;原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 Ⅰ、数据类型介绍 前面我们已经学习了基本的内置类型&#xff1a; 空间大小&#xff08;字节&#xff09; char //字…

别只看影响因子了!又1本毕业神刊偷偷被On Hold了!请谨慎投递

【SciencePub学术】昨日&#xff0c;2023JCR正式发布&#xff0c;现在影响因子的话题依旧是“热搜第一”。大家可以根据自己的研究方向&#xff0c;参考最新发布的JCR报告进行投稿选刊。若大家对于投稿选刊方面有任何问题&#xff0c;都可联系张老师为您解答&#xff01; 相关…

C++之STL(四)

1、迭代器 通过重载*、->、、--等运算符来支持指针操作。 迭代器是容器与算法的桥梁。 2、迭代器的类型 个人理解&#xff0c;迭代器是一个模板类&#xff0c;会根据你传入的类型&#xff0c;生成对应的类型。这个模板类里面存放这该类型的指针&#xff0c;里面重载了*、!…