easyx的窗口函数

文章目录

  • 前言
  • 一、EasyX的颜色
  • 二、EasyX的坐标和设备
    • 1,EasyX的坐标
    • 2,EasyX的设备
  • 三、窗口函数
    • 1,初始化窗口函数
    • 2,关闭绘图窗口
    • 3,设置窗口背景板颜色
    • 4,清空绘图设备


前言

easyx是针对c++的图形库,可以帮助c/c++初学者快速上手图形和游戏编程,easyx就是封装了一些windows的函数,最终由windows的API实现,本次章节我们学习easyx的窗口创建


提示:以下是本篇文章正文内容,下面案例可供参考

一、EasyX的颜色

在现实生活中,我们所有见过的色彩都是基于三原色红绿蓝的不同配比形成的,而我们在使用EasyX颜色时候也是使用三原色来表示

代码表示:

RGB(红色部分,绿色部分,蓝色部分),每个颜色部分的值都是从0~255  

在这里括号括起来的是颜色的配比在这里小编用图给大家表示一下:在下面框出来的部分我们看到红色部分的值255,其他两个值为0,所以导致他是深红色,用上方代码表示就是RGB(255,0,0)。
在这里插入图片描述

二、EasyX的坐标和设备

1,EasyX的坐标

区别于c的程序,c的运行是一个控制台,而EasyX则是一个窗口,如下图,这个窗口是由坐标一样组成,区别于我们数学系的坐标EasyX,坐标原点默认的原点在窗口的左上角,X轴向右为正,y轴向下为负,它的单位就是像素点。

在这里插入图片描述


2,EasyX的设备

EasyX中,设备分为两种,一种是默认的绘图窗口,另一种是IMAGE对象。也就是在后面学习中我们会加载图片进来,加入加载两张图片,但是你只想对其中一张图片进行操作,这个就是设备IMAGE对象,而你需要对其中的那个使用的话可以使用SetWorkingImage()函数可以设置当前用于绘图的设备。设置了当前用于绘图的设备,后续所有的绘图操作函数都会在绘制在该设备上 。

initgraph(450,300) 
IMAGE img;  
loadimage(&img,"./set.jpg"); 
putimage(30,20,&img,SRCINVERT); 
IMAGE fimg; 
loadimage(&fimg,"./fire.jpg"); 
putimage(50,40, &fimg, SRCINVERT); 
SetWorkingImage(&fimg); 
for (int a = 0; a < 237; a++) {for (int b = 0; b < 237; b++) {fire.xy[a][b] = getpixel(a, b); }}

像上述的片段代码,我们定义了两个图形函数,但是后面我们只对fimg进行绘图操作


三、窗口函数

在上面我们看到了窗口如下图,但是我们要创建这样一个窗口,首先需要初始化窗口,初始化窗口就是你自己想设置多大就多大,单位是像素点,也就是假如你初始化一个500*400的窗口,那么它一共就有20000个像素点。

在这里插入图片描述

1,初始化窗口函数

初始化绘图窗口
代码形式:initgraph ( int width,int height,int flag );

在这里width 代表窗口的宽度
height 代表窗口的高度
flag 代表窗口的样式,默认为 NULL ,也就是你什么都不写,默认就是如上图那样
在下面while循环是一直为了显示窗口,没有窗口就直接跳走了

在这里我们创建一个600×600的窗口,然后最后面什么不写默认为NULL

int main()
{initgraph(600,600);while (1);return 0;
}

在这里插入图片描述

写flag=SHOWCONSOLE,是用于显示控制台的,也就是c语言的黑色控制台

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{initgraph(600,600,SHOWCONSOLE);while (1);return 0;
}

在这里插入图片描述

写flag=NOCLOSE,是窗口没有关闭功能

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>int main()
{initgraph(600,600,NOCLOSE);while (1);return 0;
}

在这里插入图片描述

写flag=NOMINIMIZE,是窗口没有关闭功能

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>int main()
{initgraph(600,600,NOMINIMIZE);while (1);return 0;
}

在这里插入图片描述

如果想一起包含使用则需要使用按位与操作

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>int main()
{initgraph(600, 600, NOMINIMIZE | NOCLOSE | SHOWCONSOLE);while (1);return 0;
}

在这里插入图片描述

2,关闭绘图窗口

既然有打开窗口函数,那么就有关闭窗口函数 closegraph();在这里我们为了方便看关闭窗口功能给开启窗口后十秒关闭延时来看

#define  _CRT_SECURE_NO_WARNINGS   
#include<stdio.h>  
#include<easyx.h>  
#include<graphics.h>  
#include<windows.h>  
int main()  
{initgraph(600, 600, NOMINIMIZE | NOCLOSE | SHOWCONSOLE);//while (1);  Sleep(10000); //延时10s  closegraph();  return 0;  
}

3,设置窗口背景板颜色

在我们显示窗口的时候我们发现窗口的背景颜色不好看,我们想换一种背景颜色于是我们可以使用设置窗口背景板颜色函数setbkcolor(颜色);参数是颜色,颜色可以用RGB()来进行配比,也可以写red,green等,但是记住需要大写。

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
#include<windows.h>int main()
{initgraph(600, 600, NOMINIMIZE | NOCLOSE | SHOWCONSOLE);//设置背景颜色setbkcolor(RGB(255, 128, 255));while (1);closegraph();return 0;
}

在这里插入图片描述

在这里我们发现这个背景颜色没有变这是咋回事呀,听小编给你叨叨,我们之前讲了设备这个概念,分为两类,而我们现在操作的正是窗口设备,但是我们背景颜色是黑色,我们在重新给他弄颜色是不是需要给他先清除掉之前的设备的背景颜色,于是我们需要使用到一个清空绘图设备函数cleardevice();放在设置背景颜色后面即可,也就是我们把之前的设备背景颜色清除,然后设置的就会显示在上面,如果先使用清除函数,那么后面显示的还是原始设备的背景颜色黑色 。如下面第四个

4,清空绘图设备

cleardevice(),也即是清空之前设备上操作的东西包括背景颜色等等

#define  _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
#include<windows.h>int main()
{initgraph(600, 600, NOMINIMIZE | NOCLOSE | SHOWCONSOLE);//设置背景颜色setbkcolor(RGB(255, 128, 255));cleardevice();while (1);closegraph();return 0;
}

在这里插入图片描述

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

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

相关文章

2023总结与展望--Empirefree

今年一篇博客都没写过了&#xff0c;好像完全在忙在工作和生活上面了&#xff0c;珍惜自我&#xff0c;保持热情&#xff0c;2024对我好点 文章目录 &#x1f525;1. 年终总结1.1.学习工作计划1.2. 生活计划1.3 个人总结 &#x1f525;2. 未来展望 &#x1f525;1. 年终总结 1…

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…

Unity 新版 Meta XR SDK 无法导入解决方法

文章目录 &#x1f4d5;教程说明&#x1f4d5;新版 SDK 说明&#x1f4d5;从 Meta 官网导入开发包⭐依赖包⭐如何导入⭐导入后包存放在哪里了&#xff1f;⭐场景样例文件去哪了&#xff1f; 此教程相关的详细教案&#xff0c;文档&#xff0c;思维导图和工程文件会放入 Spatia…

【Java进阶篇】Java中的枚举的概念、有什么特点和好处

✔️Java枚举的概念、特点和好处 ✔️枚举的概念✔️枚举的特点✔️枚举的好处✔️拓展知识仓✔️枚举如何实现的&#xff1f; ✔️枚举的概念 Java枚举是一种特殊的数据类型&#xff0c;它的每一个值都映射到Enum类的构造函数中&#xff0c;具有固定数量的常量值。枚举类型具有…

IRQ Handler 的使用——以USART串口接收中断分别在标准库与HAL库版本下的举例

前言&#xff1a; 1.中断系统及EXTI外部中断知识点见我的博文&#xff1a; 9.中断系统、EXTI外部中断_eirq-CSDN博客文章浏览阅读301次&#xff0c;点赞7次&#xff0c;收藏6次。EXTI&#xff08;Extern Interrupt&#xff09;外部中断EXTI可以监测指定GPIO口的电平信号&…

【C++】命名空间、输入输出、缺省参数和函数重载详解

文章目录 前言命名空间命名空间的定义命名空间的使用 C输入输出缺省参数缺省参数定义缺省参数分类 函数重载函数重载的概念函数名修饰规则extern "C"的使用 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; C 是一门强大而灵活的编程语言…

【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程

探讨Redis 6.0为何需要启用多线程 背景介绍开启多线程多线程的CPU核心配置IO多线程模式单线程处理方式多线程处理方式 为什么要开启多线程&#xff1f;充分利用多核CPU提高网络I/O效率响应现代应用需求 多线程实现启用多线程 最后总结 背景介绍 在Redis 6.0版本中&#xff0c;…

MD5算法

一、引言 MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一种广泛应用的密码散列算法&#xff0c;由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密&#xff0c;将消息压缩成固定长度的摘要&#xff08;通常为128位&#xff09;。在密码学…

[C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计

源码地址&#xff1a; github地址&#xff1a;https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍&#xff1a; 眼睛注视&#xff08;eye gaze&#xff09; 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外&#xff0c;它还被用…

30 UVM Adder Testbench Example

1 Adder Design 加法器设计在时钟的上升沿产生两个变量的加法。复位信号用于clear out信号。注&#xff1a;加法器可以很容易地用组合逻辑开发。引入时钟和重置&#xff0c;使其具有测试台代码中时钟和重置的样子/风格。 module adder(input clk, reset, input [7:0] in1, in…

【日常聊聊】解决深度学习模型挑战:解释性与鲁棒性的平衡

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 数据偏见&#xff1a; 介绍和解释&#xff1a; 解决方法&#xff1a; 2. 复制训练数据&#xff1a; 介绍和解决方法&am…

机器学习的分类与经典算法

机器学习算法按照学习方式分类&#xff0c;可以分为有监督学习&#xff08;Supervised Learning&#xff09;、无监督学习&#xff08;Unsupervised Learning&#xff09;、半监督学习&#xff08;Semi-supervised Learning&#xff09;、强化学习&#xff08;Reinforcement Le…