图形库篇 | EasyX | 图形绘制

news2024/11/20 6:36:30

图形库篇 | EasyX | 图形绘制


设置颜色

函数功能函数
设置画线颜色void setlinecolor(COLORREF color)
设置填充颜色void setfillcolor(COLORREF color)

设置画线颜色:void setlinecolor(COLORREF color)

  • 具体功能:设置当前设备画线颜色
  • 返回值:空
  • 参数:
    • color:设置的画线颜色

设置填充颜色:void setfillcolor(COLORREF color)

  • 具体功能:设置当前设备填充颜色
  • 返回值:空
  • 参数:
    • color:设置的填充颜色

为什么先讲解设置颜色相关的函数,因为在绘制任何图形之前,都应该先设置颜色,然后再进行绘制,否则绘制出来的图形颜色为默认的白色。

  • 针对无填充图形:在绘制前使用 setlinecolor 函数设置画线颜色
  • 针对填充图形:在绘制前使用 setlinecolor 函数和 setfillcolor 函数设置画线颜色和填充颜色(设置画线颜色的原因是填充图形是有边框的)

绘制直线

函数功能函数
绘制直线void line(int x1,int y1,int x2,int y2)

绘制直线:void line(int x1,int y1,int x2,int y2)

  • 具体功能:绘制直线
  • 返回值:空
  • 参数:
    • x1:起始点x坐标
    • y1:起始点y坐标
    • x2:终止点x坐标
    • y2:终止点y坐标

代码示例:绘制横线

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色:白色
	cleardevice(); // 刷新屏幕

	// 绘制横线:起始点和终止点的y坐标一致
	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	line(70, 200, 570, 200); // 绘制一条直线,长:570-70=500

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述

代码示例:绘制竖线

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色:白色
	cleardevice(); // 刷新屏幕

	// 绘制竖线:起始点和终止点的x坐标一致
	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	line(300, 40, 300, 440); // 绘制一条直线,长:440-40=400

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述


绘制圆

函数功能函数
绘制无填充的圆void circle(int x,int y,int radius)
绘制填充圆void fillcircle(int x,int y,int radius)

绘制无填充的圆:void circle(int x,int y,int radius)

  • 具体功能:绘制无填充的圆
  • 返回值:空
  • 参数:
    • x:圆心x坐标
    • y:圆心y坐标
    • radius:圆的半径

绘制填充圆:void fillcircle(int x,int y,int radius)

  • 具体功能:绘制有边框的填充圆
  • 返回值:空
  • 参数:
    • x:圆心x坐标
    • y:圆心y坐标
    • radius:圆的半径

代码示例:绘制无填充的圆

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色:白色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	circle(320, 240, 100); // 圆心(320,240),半径:100

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述

代码示例:绘制填充圆

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色:白色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	setfillcolor(RGB(71, 143, 221)); // 设置填充颜色:蓝色
	fillcircle(320, 240, 100); // 圆心(320,240),半径:100

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述


绘制矩形

函数功能函数
绘制无填充的矩形void rectangle(int left,int top,int right,int bottom)
绘制填充矩形void fillrectangle(int left,int top,int right,int bottom)
绘制无填充的圆角矩形void roundrect(int left,int top,int right,int bottom,int ellipsewidth,int ellipseheight)
绘制填充圆角矩形void fillroundrect(int left,int top,int right,int bottom,int ellipsewidth,int ellipseheight)

绘制无填充的矩形:void rectangle(int left,int top,int right,int bottom)

  • 具体功能:绘制无填充的矩形
  • 返回值:空
  • 参数:
    • left:矩形左部x坐标
    • top:矩形顶部y坐标
    • right:矩形右部x坐标
    • bottom:矩形底部y坐标

绘制填充矩形:void fillrectangle(int left,int top,int right,int bottom)

  • 具体功能:绘制有边框的填充矩形
  • 返回值:空
  • 参数:
    • left:矩形左部x坐标
    • top:矩形顶部y坐标
    • right:矩形右部x坐标
    • bottom:矩形底部y坐标

绘制无填充的圆角矩形:void roundrect(int left,int top,int right,int bottom,int ellipsewidth,int ellipseheight)

  • 具体功能:绘制无填充的圆角矩形
  • 返回值:空
  • 参数:
    • left:矩形左部x坐标
    • top:矩形顶部y坐标
    • right:矩形右部x坐标
    • bottom:矩形底部y坐标
    • ellipsewidth:构成圆角矩形的圆角的椭圆的宽度
    • ellipseheight:构成圆角矩形的圆角的椭圆的高度

这里着重说明后两个参数,它们分别表示圆角的椭圆的高和宽。怎么理解呢,其实就是相当于指定一个椭圆的宽和高,然后把它按照轴对称切成四份,将每一份放在矩形对应的四个角,这样就构成了圆角矩形。

需要注意的是,通常我们想要的圆角并非椭圆而是圆,因此会将ellipsewidth和ellipseheight设为同一个值。

如果将一个边长为w的正方形的圆角设为w/2,那么它就会成为一个半径为w/2的圆。

绘制填充圆角矩形:void fillroundrect(int left,int top,int right,int bottom,int ellipsewidth,int ellipseheight)

  • 具体功能:绘制有边框的填充圆角矩形
  • 返回值:空
  • 参数:
    • left:矩形左部x坐标
    • top:矩形顶部y坐标
    • right:矩形右部x坐标
    • bottom:矩形底部y坐标
    • ellipsewidth:构成圆角矩形的圆角的椭圆的宽度
    • ellipseheight:构成圆角矩形的圆角的椭圆的高度

代码示例:绘制无填充的矩形

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	setfillcolor(RGB(71, 143, 221)); // 设置填充颜色:蓝色
	rectangle(100, 100, 540, 380); // 宽:540-100=440 高:380-100=280 

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述
代码示例:绘制填充矩形

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	setfillcolor(RGB(71, 143, 221)); // 设置填充颜色:蓝色
	fillrectangle(100, 100, 540, 380); // 宽:540-100=440 高:380-100=280 

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述
代码示例:绘制无填充的圆角矩形

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	setfillcolor(RGB(71, 143, 221)); // 设置填充颜色:蓝色
	roundrect(100, 100, 540, 380, 8, 8); // 宽:540-100=440 高:380-100=280 圆角半径:8

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述

代码示例:绘制填充圆角矩形

#include <easyx.h> // 引用图形库头文件
#include <conio.h>

int main()
{
	initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素

	setbkcolor(RGB(255, 255, 255)); // 设置背景色
	cleardevice(); // 刷新屏幕

	setlinecolor(RGB(71, 143, 221)); // 设置画线颜色:蓝色
	setfillcolor(RGB(71, 143, 221)); // 设置填充颜色:蓝色
	fillroundrect(100, 100, 540, 380, 8, 8); // 宽:540-100=440 高:380-100=280 圆角半径:8

	_getch(); // 按任意键继续
	closegraph(); // 关闭绘图窗口
	return 0;
}

请添加图片描述


作者:百栗.
微信:baili0299

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

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

相关文章

带IV的分组加密下密文分散存储且存在混淆密文片段的多项式时间解密方案

在使用带IV的分组加密模式下&#xff0c;考虑这样一个场景&#xff1a;分组加密后&#xff0c;每组密文都被分散保存&#xff0c;且在恢复的时候&#xff0c;每组密文会和n个混淆的密文一起提供&#xff0c;此时&#xff0c;若想完整的恢复明文&#xff0c;需要一个多项式时间的…

新手尝试硬件买单片机还是树莓派?

今日话题&#xff0c;新手尝试硬件买单片机还是树莓派&#xff1f;对于硬件初学者&#xff0c;建议首先学习单片机&#xff0c;如51单片机或STM32等。这些平台有丰富的学习资源和示例项目&#xff0c;程序相对简单&#xff0c;更贴近硬件&#xff0c;使初学者能够轻松入门&…

RecyclerView在点击事件的处理上也优于ListView

主要是细节的支持&#xff0c;ListView直接提供setOnItemClickListener,而RecyclerView没有&#xff0c;是因为RV考虑的更细节&#xff0c;比如我要点击条目上的某个图标生效&#xff0c;使用ListView会很难实现&#xff0c;但是RV实现会很容易&#xff0c;直接在适配器中由Vie…

财务管理系统 财务管理软件

财务管理系统 财务管理软件 系统功能介绍&#xff1a; 1、预算管理系统 预算管理是一个承上启下的业务衔接系统&#xff0c;主要用于记录本单位的年度预算指标数据&#xff0c;可以通过接口从财政年度预算数据中导入&#xff0c;也可以根据自身管理控制需要录入…

前端移动web详细解析四

移动 Web 第四天 01-vw适配方案 vw和vh基本使用 vw和vh是相对单位&#xff0c;相对视口尺寸计算结果 vw&#xff1a;viewport width&#xff08;1vw 1/100视口宽度 &#xff09; vh&#xff1a;lviewport height ( 1vh 1/100视口高度 ) vw布局 vw单位的尺寸 px 单位数…

神经网络的解释方法之CAM、Grad-CAM、Grad-CAM++、LayerCAM

原理优点缺点GAP将多维特征映射降维为一个固定长度的特征向量①减少了模型的参数量&#xff1b;②保留更多的空间位置信息&#xff1b;③可并行计算&#xff0c;计算效率高&#xff1b;④具有一定程度的不变性①可能导致信息的损失&#xff1b;②忽略不同尺度的空间信息CAM利用…

Allegro如何恢复器件的丝印,位号

在用Allegro Layout的过程中,有时候会无意间删除掉器件的丝印,位号等,那怎么恢复呢? 被无意删除的电容丝印框,如下图。 首先点击菜单Place 点击Update Symbols...(更新器件) 跳出下面的对话框,找到对应的封装类型打勾。 然后下面四项打勾,然后点击恢复按钮即可。 恢复…

国标GB28181安防视频平台EasyGBS显示设备无法注册是什么原因?该如何解决?

国标GB28181协议视频平台EasyGBS&#xff0c;是基于国标GB28181协议的视频云服务平台&#xff0c;支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音…

三维场景视图加载cgcs2000坐标系数据

需求&#xff1a; 高程服务&#xff1a;2000坐标系 底图&#xff1a;天地图2000坐标系 三维模型&#xff1a;2000坐标系 效果图&#xff1a; 测试数据&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1cJbMfzkMalY06wOrmXStSQ 提取码&#xff1a;uz2a 高程服务…

Xcode中如何操作Git

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

Tips:关于自己电脑重装python的流程

新换电脑&#xff0c;记录下安装python环境的流程。 1.先安装python 网上随便找教程 2.再安装pycharm https://blog.csdn.net/thefg/article/details/128881507?loginfrom_csdnhttps://blog.csdn.net/thefg/article/details/128881507?loginfrom_csdn3.再修改默认的pip为…

BI零售数据分析,告别拖延症,及时掌握一线信息

在日常的零售数据分析中&#xff0c;经常会因为数据量太大&#xff0c;分析指标太多且计算组合多变而导致数据分析报表难产&#xff0c;零售运营决策被迫拖延症。随着BI数据可视化分析技术的发展&#xff0c;智能化、可视化、自助分析的BI数据分析逐渐成熟&#xff0c;形成一套…

UG\NX二次开发 获取图层所在的图层类别

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 大熊猫小竹子 订阅本专栏,非常感谢。 简介 获取图层所在的图层类别,比如获取20层所在的图层类别。已经封装好函数。 效果 代码 #include "me.hpp"using namespace std;//获取图层所在的…

JAVA毕业设计107—基于Java+Springboot+Vue的民宿酒店预订管理系统(源码+数据库)

基于JavaSpringbootVue的民宿酒店预订管理系统(源码数据库)107 一、系统介绍 本系统前后端分离 本系统分为用户、前台、管理员三种角色(角色菜单可以自行分配) 前台&#xff1a; 登录、注册、民宿浏览、民宿评价、民宿酒店下单预订、密码修改、个人信息修改。 管理后台&…

云计算助力史上首届“云上亚运”圆满成功!

201金&#xff0c;魔幻的BGM&#xff0c;以及崛起的中国科技&#xff0c;让杭州亚运会成功出圈。 很多网友表示太震撼了&#xff01;开幕式很漂亮&#xff0c;杭州为了奥运造新城真豪横&#xff0c;看完一整个文化自信住&#xff01; 赛场内外除了无数个令人感动的瞬间&#…

ReuseAndDiffuse笔记

https://arxiv.org/pdf/2309.03549.pdf https://mp.weixin.qq.com/s/pbSK4KOO2hqQU1-uwQzjBA 数据集&#xff1a; BLIP-2、MiniGPT4 等多模态大语言模型,对Moments-In-Time、Kinetics-700 和 VideoLT等数据集进行自动标注&#xff1b; Image-text datasets&#xff1a;平移缩…

多亏了iOS 17.2!现在自定义Action按钮,让iPhone 15秒变翻译器

iPhone 15 Pro和iPhone 15 Pro Max在发布时的头条功能之一是“Action”按钮,它取代了iPhone从一开始就存在的熟悉的静音切换按钮。 Action按钮是一个多用途的自定义按钮,可以分配给各种功能(包括静音!)。事实上,由于它可以被指定为快捷方式,所以可能性是无限的。 苹果…

同步盘简介及功能解析:了解同步盘是什么及其实用性

数字化时代&#xff0c;办公中用户对于文件协同的需求越来越高。同步盘无疑是近几年最热门的文件协同工具。什么是同步盘&#xff1f;同步盘有什么用&#xff1f; 什么是同步盘&#xff1f; 同步盘是一种可以将文件存储至云端&#xff0c;然后同步至用户的各个设备的文件存储协…

Pod资源限制与探针

目录 资源限制 资源限制概述 资源单位 示例 示例1 示例2 探针 探针的三种规则 Probe支持三种检查方法 示例 示例1&#xff1a;exec方式 示例2&#xff1a;httpGet方式 示例3&#xff1a;tcpSocket方式 示例4&#xff1a;就绪检测 示例5&#xff1a;就绪检测2 …