C/C++图形库EasyX保姆级使用教程(二) 图形化窗口设置以及简单图形的绘制

news2024/10/7 9:27:23

C/C++图形库EasyX保姆级使用教程

第一章 Microsoft Visual Studio 2022和EasyX的下载及安装使用
第二章 图形化窗口设置以及简单图形的绘制


文章目录

  • C/C++图形库EasyX保姆级使用教程
  • 前言
  • 一、窗口!
    • 1.如何生成一个图形化窗口?
      • 1.头文件
      • 2.初始化一个图形化窗口
      • 3.设置窗口背景颜色
        • 刷新函数cleardevice()
        • 设置窗口颜色:setbkcolor()
        • 设置窗口颜色:RGB(红,绿,蓝)
  • 二、绘制简单图形
    • 1.画一条直线
    • 2.画圆
    • 3.画矩形和正方形
  • 总结


前言

本篇文章,我将给大家展示VC中的图形化编程,内容比较详细!

一、窗口!

日常写程序,我们用的最多的就是控制台的窗口,但是,今天我们讲的是图形化编程,那么控制台窗口变成了图形化窗口!!!
那么,就有了一个问题:


1.如何生成一个图形化窗口?

1.头文件

首先我们需要一个名为#include<easyx.h>头文件也可以把#include<graphics.h>加上

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;

2.初始化一个图形化窗口

那么在这样的条件下,我们可以用initgraph创建一个窗口

  1. initgraph();是创建图形化窗口的重要内容,其中initgraph()中的参数包括:
    initgraph(窗口的长,窗口的宽度,显示控制台);
  2. 注意:最后一个参数可以不写,不写时是只有图形化窗口
  3. initgraph(800, 600);
  4. 我们好像不能只是去创建窗口,我们还要将窗口关闭,closegraph();这个函数可以将你创建的窗口关闭【虽然基本也用不着这个…】
  5. 但是在写代码的时候还要注意一点,就是在结尾出加入一个while(true);不然整个程序会一闪而过,详细代码如下:
#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main(){
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	while(true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

效果如下图所示:
窗口效果
可以看到,窗口是黑乎乎一片,没有任何东西,如果觉得单调,那么就看一下下面的东西吧!


3.设置窗口背景颜色

我们可以看到,只是有黑乎乎的一片会显得程序尤为单调,那么我们就需要用到更改背景颜色的函数了:setbkcolor(颜色英文单词大写);RGB(红[int],绿[int],蓝[int]);


刷新函数cleardevice()

这个函数的主要用途在于更换完背景颜色后,可以将其显示出来,换句话说,如果不用这个函数,设置完背景颜色就无法显示

cleardevice();

设置窗口颜色:setbkcolor()

在使用setbkcolor函数时,我们只需要使用其英文单词的大写,以下是一些可以用到的颜色:

颜色代码
BLACK0
BLUE0xAA0000
GREEN0x00AA00
CYAN0xAAAA00
RED0x0000AA
MAGENTA0xAA00AA
BROWN0x0055AA
LIGHTGRAY0xAAAAAA
DARKGRAY0x555555
LIGHTBLUE0xFF5555
LIGHTGREEN0x55FF55
LIGHTCYAN0xFFFF55
LIGHTRED0x5555FF
LIGHTMAGENTA0xFF55FF
YELLOW0x55FFFF
WHITE0xFFFFFF

所以,当我们想要更改背景颜色为红色时,我们就可以用setbkcolor(RED);之后加入cleardevice();来实现

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	setbkcolor(RED);/*设置背景颜色为红色*/
	cleardevice();/*刷新窗口*/
	while (true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

这样,我们就得到了一个红色背景的程序,如下图所示:
红色的图片


设置窗口颜色:RGB(红,绿,蓝)

当我们觉得以上颜色还不够用时,我们就可以使用RGB();函数,使用方法如下:setbkcolor(RGB(253,151,95));
完整代码:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	setbkcolor(RGB(253,151,95));/*通过了RGB进行调色*/
	cleardevice();/*刷新窗口*/
	while (true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

运行结果图展示:运行结果图展示
另外,当我们需要使用RGB进行调色时,我们只需要打开画图,找到如下按钮:
找到如下按钮
随意找到一个颜色,找到右侧对应的RGB值,将其写入到代码中,如下图所示:

颜色代码


二、绘制简单图形

1.画一条直线

在VC中,我们想要画一条直线,只需要使用到line函数,line()的使用方法为:
line(起始点x,起始点y,终点x,终点y);
例如我们想要从(0,0)的位置画到(800,600)的位置,这样的一条对角线,我们只需要使用line(0,0,800,600);
这样就可以画一条直线了!!!
详细代码如下:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	setbkcolor(RGB(253,151,95));/*通过了RGB进行调色*/
	cleardevice();/*刷新窗口*/
	line(0, 0, 800, 600);/*从起始点(0,0)画到结束点(800,600)*/
	while (true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

这样我们就得到了一条对角线了【其实画直线也是可以的】
一条对角线


2.画圆

众所周知,圆的英文单词是circle,那么在VC中,画圆时,我们就要用到circle函数,函数的使用方法为:
circle(圆心x,圆心y,圆半径);
比如,我们要在(100,100)的位置画一个半径为50的圆,那么就要这样些:circle(100, 100, 50);

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	setbkcolor(RGB(253,151,95));/*通过了RGB进行调色*/
	cleardevice();/*刷新窗口*/
	line(0, 0, 800, 600);/*从起始点(0,0)画到结束点(800,600)*/
	circle(100, 100, 50);/*circle(圆心x,圆心y,圆半径)  画圆*/
	while (true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

效果如下:
画圆的效果图


3.画矩形和正方形

众所周知,矩形在英语里的英文单词为rectangle,所以在使用VC做图形化时,我们就要用的rectangle()函数,具体操作如下:
rectangle(左上角x,左上角y,右下角x,右下角y);
画矩形时,我们就只需要知道左上角的x,y的值以及右小角的x,y的值,就可以画出矩形了,当然,如果说要画正方形,就要保证每条边相等,也就是右下角x-左上角x=右下角y-左上角y只要满足这个条件,就可以画出矩形来了!!!
代码如下:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(800, 600);/*生成一个长宽为800,600的图形化窗口*/
	setbkcolor(RGB(253,151,95));/*通过了RGB进行调色*/
	cleardevice();/*刷新窗口*/
	line(0, 0, 800, 600);/*从起始点(0,0)画到结束点(800,600) 画直线*/
	circle(100, 100, 50);/*circle(圆心x,圆心y,圆半径)  画圆*/
	rectangle(300, 300, 400, 400);/*画矩形   rectangle(左上角x,左上角y,右下角x,右下角y)*/
	while (true);/*防止程序一闪而过*/
	closegraph();/*关闭图形化窗口*/
	return 0;
}

效果图如下:
画正方形


总结

本篇文章主要讲解了VC中初始化一个窗口以及绘制一些简单图形,一下篇文章我将要讲解如何让图形拥有填充的颜色!
最后,如果你觉的文章写的还不错的话,求点赞求收藏求打赏求转发,最重要的是点一个大大的关注,各位的支持是我创作的最大动力!

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

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

相关文章

基于Java+Swing+Mysql人口普查登记系统

基于JavaSwingMysql人口普查登记系统 一、系统介绍二、功能展示1.主页2.新增人口信息3.查询人口信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看列表、新增人口信息、删除人口信息 运行环境&#xff1a;eclipse、idea、jdk1.8 二、功能展示 1.…

常州工学院数字图像处理及应用2022-2023第二学期实验报告 + 期末

《数字图像处理及应用》 课程 实验报告书 专业班级&#xff1a; 21计二 姓 名&#xff1a; 王梓权 学 号&#xff1a; 21030228 指导教师&#xff1a; 徐则中 计算机信息工程学院 《数字图像处理》实验 实验教学目的和要求 《数字图像处理》课程内容是一门综合…

Python MongoDB复习第一章

Python 可以在数据库应用程序中使用。 最受欢迎的 NoSQL 数据库之一是 MongoDB。 MongoDB MongoDB 将数据存储在类似 JSON 的文档中&#xff0c;这使得数据库非常灵活和可伸缩。 为了能够测试本教程中的代码示例&#xff0c;您需要访问 MongoDB 数据库。 您可以在 https:/…

论文学习笔记:增强学习应用于OS调度

【引子】周末&#xff0c;读了一篇同事推荐的论文《STUN: Reinforcement-Learning-Based Optimization of Kernel Scheduler Parameters for Static Workload Performance》&#xff0c;很有启发&#xff0c;遂加入个人思考编译成文。 从小型物联网设备到大型服务器&#xff0c…

VIM编辑器的命令使用总结

&#xff08;该图由AI绘制 关注我 学习AI画图&#xff09; 目录 一、VIM编辑器 1、vi概述 2、vim编辑器 3、vim编辑器的安装 4、vim编辑器的四种模式&#xff08;重点&#xff09; ☆ 命令模式 ☆ 编辑模式或输入模式 ☆ 末行模式 ☆ 可视化模式&#xff08;了解&am…

Apache Doris (十三) :数据存储模型之Duplicate数据存储模型

进入正文之前&#xff0c;欢迎订阅专题、对博文点赞、评论、收藏&#xff0c;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; 在某些多维分析场景下&#xff0c;数据既没有主键&#xff0c;也没有聚合需求&#xff0c;只需要将数据原封不动的存入表中&#xff0c;数据有…

神经网络初谈

文章目录 简介神经网络的发展历程神经网络的初生神经网络的第一次折戟神经网络的新生&#xff0c;Hinton携BP算法登上历史舞台命途多舛&#xff0c;神经网络的第二次寒冬神经网络的重生&#xff0c;黄袍加身&#xff0c;一步封神神经网络的未来&#xff0c;众说纷纭其他时间点 …

【实战】 四、JWT、用户认证与异步请求(下) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(五)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求1~56.用useAuth切换登录与非登录状态7.用fetch抽象通用HTTP请求方法&#xff0c;增强通用性8.用useHt…

基于Hadoop的网上购物行为分析设计与实现

有需要本项目的可以私信博主&#xff0c;提供部署和讲解服务&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 本研究基于淘宝用户行为的开源数据展开大数据分析研究&#xff0c;通过Hadoop大数据分析平台对阿里天池公开的开源数据集进行多维度的用户行为分析&a…

4.1ORB-SLAM3之处理缓存队列中的关键帧

0.简介 该函数主要包括以下几个部分&#xff1a; 计算该关键帧特征点的Bow信息更新当前关键帧新增地图点的属性更新共视图中关键帧间的连接关系将该关键帧插入到地图中 1.计算该关键帧特征点的Bow信息ComputeBoW() vector<cv::Mat> vCurrentDesc Converter::toDescr…

ModaHub魔搭社区:向量数据库功能主要特点和应用场景

目录 主要特点 向量数据库功能 高性能向量搜索 低延迟高召回率 多向量搜索索引 向量数据库可以帮助的领域 图像相似性搜索 视频相似性搜索 音频相似性搜索 主要特点 向量数据库功能 高性能向量搜索 存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML&…

Matlab论文插图绘制模板第106期—带误差棒的堆叠柱状图

在之前的文章中&#xff0c;分享了Matlab带误差棒的折线图绘制模板&#xff1a; 带误差棒的柱状图绘制模板&#xff1a; 进一步&#xff0c;再来分享一下带误差棒的堆叠柱状图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源…

管理类联考——数学——技巧篇——公式——几何题

三角形 三角形面积公式 S 1 2 b c s i n A 1 2 a c s i n B 1 2 a b s i n C S\frac{1}{2}bcsinA\frac{1}{2}acsinB\frac{1}{2}absinC S21​bcsinA21​acsinB21​absinC(正弦定理)&#xff1b; S p ( p − a ) ( p − b ) ( p − c ) S\sqrt{p(p-a)(p-b)(p-c)} Sp(p−a)…

JAVA-编程基础-06-数组

Lison <dreamlison163.com>, v1.0.0, 2023.03.22 JAVA-编程基础-06-数组 什么是数组 ​ 数组是一种线性数据结构&#xff0c;是一个使用连续的内存空间存放相同的数据类型的集合容器&#xff0c;与其他容器相比&#xff0c;数组的区别主要在于性能与保存基本类型的能力…

ASUS华硕天选air笔记本FX516P原装出厂原厂Win10系统镜像

ASUS华硕笔记本天选air FX516P原厂Windows10系统恢复原装出厂OEM预装自带系统 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、华硕电脑管家、奥创控制中心等预装程序 链接&#xff1a;https://pan.baidu.com/s/150QimXQfATAhzxNCl690Nw?pwdhvj6 提取码&#xff1a;h…

10年来测试行业所遇问题,功能/接口/自动化测试?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 10年来测试行业发…

Apache Doris (八) :Doris分布式部署(五) Broker部署及Doris集群启动脚本

目录 1.Broker部署及扩缩容 1.1 BROKER 部署 1.2 BROKER 扩缩容 2. Apache Doris集群启停脚本 进入正文之前&#xff0c;欢迎订阅专题、对博文点赞、评论、收藏&#xff0c;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; 1.Broker部署及扩缩容 Broker 是 Doris 集…

【系统架构】第六章-数据库设计基础知识(数据库基本概念、关系数据库)

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 数据库基本概念 数据库的基础结构是数据模型&#xff0c;数据模型的三要素是数据结构、数据操作和数据的约束条件 数据库三级模式&#xff1a;视图层、逻辑层、物理层 视图层&#xff1a;最高…

Day.2 LeetCode刷题练习(螺旋矩阵)

题目&#xff1a; 例子&#xff1a; 分析题目&#xff1a; 本题给了一个值n要生成一个n*n的矩形&#xff0c;并且是螺旋的生成值。 这样我们可以把它分层来看如n 4时生成一个4*4的矩形由两层矩形构成&#xff0c;这样就能先遍历生成最外面的一层后再去生成里面的一层 那如何…

【VSCODE】4、vscode git pull/push 报错 remote: HTTP Basic: Access denied

一、报错示例 在执行 git pull/push 的时候报错如下 二、解决方式 该问题来自 vscode 的身份验证 打开 vscode →code → 首选项 → 设置搜索 git.terminalAuthentication取消选中该选项重启终端即可