【小黑chenchen】14番外:图形库
图形库的基本说明:
目录
一. 图形库的基本概念:
1.颜色:
2.坐标:
3.设备:
二. 图形库的绘图窗口:
基本格式:#include "graphics.h" 或 #include "easyx.h"
基本格式:initgraph(width,height,flag);
基本格式:closegraph();
三. 基本图形的绘制:
1.绘制直线:
基本格式:line(x1,y1,x2,y2);
2.画线颜色和样式的设置:
①设置画线颜色:
基本格式:setlinecolor(color);
②设置画线样式:
基本格式:setlinestyle(style,thickness);
3.矩形的绘制:
①绘制空心矩形:
基本格式:rectangle(left,top,right,bottom);
②绘制填充矩形:
基本格式:fillrectangle(left,top,right,bottom);
4.填充颜色和样式的设置:
①填充颜色的设置:
基本格式:setfillcolor(color);
②填充样式的设置:
基本格式:setfillstyle(style);
5.圆形的绘制:
①绘制空心圆:
基本格式:circle(x,,y,radius);
②绘制填充圆:
基本格式:fillcircle(x,y,radius);
四. 批量贴图和文字输出:
1.批量贴图:
①定义图片对象:
基本格式:IMAGE 图片对象名;
②加载图片:
基本格式:loadimage(IMAGE*,plmgFile,nWidth,nHeight);
2.文字输出:
①文字输出:
基本格式:outtextxy(x,y,str);
3.文字颜色和样式的设置:
①设置文字颜色:
基本格式:settextcolor(color);
②设置文字样式:
基本格式:settextstyle(nHeight,nWidth,IpseFace);
五. 鼠标事件:
①定义鼠标消息变量:
基本格式:MOUSEMSG 鼠标消息变量名;
②获取鼠标消息:
基本格式:GetMouseMsg();
③鼠标事件:
当前鼠标消息:鼠标消息变量名.uMsg;
六. 例如:
一.图形库的基本概念:
1.颜色:
①预定义颜色常量
②16进制的颜色表示
③RGB宏合成颜色
④色彩模型转换的RGB颜色
2.坐标:
①物理坐标:物理坐标用于描述设备的坐标体系,坐标原点在设备的左上角,x轴向右为正,y轴向下为正,度量单位是像素。
②逻辑坐标:逻辑坐标是在程序中用于绘图的坐标体系。默认情况下,逻辑坐标与物理坐标是一一对应的,但是可以通过函数进行修改。
3.设备:
在EasyX中,设备分为两种,一种是默认的绘图窗口,另一种是IMAGE对象。
二.图形库的绘图窗口:
1.在使用图形库之前应包含图形库头文件。
基本格式:#include "graphics.h" 或 #include "easyx.h"
2.在绘制图形之前应使用 initgraph() 函数打开绘图窗口。
基本格式:initgraph(width,height,flag);
width为绘图环境宽度,height为绘图环境高度,flag为绘图环境样式。
3.使用完绘图窗口后应使用closegraph()函数关闭绘图窗口。
基本格式:closegraph();
三.基本图形的绘制:
1.绘制直线:
可以使用line()函数绘制直线。
基本格式:line(x1,y1,x2,y2);
其中的x1,y1为起始点的坐标,x2,y2为终止点的坐标。
2.画线颜色和样式的设置:
①设置画线颜色:
使用setlinecolor()函数设置当前画线颜色。
基本格式:setlinecolor(color);
其中color为要设置的画线颜色。
②设置画线样式:
使用setlinestyle()函数设置当前画线样式。
基本格式:setlinestyle(style,thickness);
其中style为画线样式,thickness为线的宽度。
参数 style 指定了画线样式,该样式由直线样式、端点样式、连接样式三类组成。可以 是其中一类或多类的组合。同一类型中只能指定一个样式。
3.矩形的绘制:
①绘制空心矩形:
使用rectangle()函数画空心矩形。
基本格式:rectangle(left,top,right,bottom);
其中left和top为矩形左上角x和y坐标,right和bottom为矩形右下角x和y坐标。
②绘制填充矩形:
使用fillrectangle()函数绘制填充矩形。
基本格式:fillrectangle(left,top,right,bottom);
其中left和top为矩形左上角x和y坐标,right和bottom为矩形右下角x和y坐标。
填充颜色默认为白色。
4.填充颜色和样式的设置:
①填充颜色的设置:
使用setfillcolor()函数设置当前的填充颜色。
基本格式:setfillcolor(color);
其中color为填充颜色。
②填充样式的设置:
使用setfillstyle()函数设置当前填充样式。
基本格式:setfillstyle(style);
其中style为指定的填充样式。
5.圆形的绘制:
①绘制空心圆:
使用circle()函数画空心圆。
基本格式:circle(x,,y,radius);
其中x和y为圆心的坐标,radius为圆的半径。
②绘制填充圆:
使用fillcircle()函数画填充圆。
基本格式:fillcircle(x,y,radius);
其中x和y为圆心的坐标,radius为圆的半径。
四.批量贴图和文字输出:
1.批量贴图:
①定义图片对象:
使用图片对象IMAGE定义图片对象。
基本格式:IMAGE 图片对象名;
定义了图片对象之后就可以用图片对象保存图片了。
②加载图片:
使用loadimage()函数从本地数据文件中读取图像并保存至图片对象中。
基本格式:loadimage(IMAGE*,plmgFile,nWidth,nHeight);
其中IMAGE*为保存图片的IMAGE对象指针,plmgFile为图片文件名,nWidth为图片的
拉伸宽度,nHeight为图片的拉伸高度。
2.文字输出:
①文字输出:
使用outtextxy()函数在指定位置输出字符串。
基本格式:outtextxy(x,y,str);
其中x和y为输出文字的坐标,str为需要输出的字符串。
3.文字颜色和样式的设置:
①设置文字颜色:
使用settextcolor()函数设置当前文字颜色。
基本格式:settextcolor(color);
其中color为需要设置的文字颜色。
②设置文字样式:
使用settextstyle()函数设置当前字体样式。
基本格式:settextstyle(nHeight,nWidth,IpseFace);
其中nHeight和nWidth为字体大小,IpseFace为字体名称。
五.鼠标事件:
①定义鼠标消息变量:
使用MOUSEMSG类型定义鼠标消息变量。
基本格式:MOUSEMSG 鼠标消息变量名;
②获取鼠标消息:
使用GetMouseMsg()函数获取鼠标消息。
基本格式:GetMouseMsg();
鼠标消息中记录着许多鼠标相关的操作,比如:鼠标移动、鼠标滚轮拨动、左键按下、
左键弹起、左键双击、中键按下、中键弹起、中键双击、右键按下、右键弹起、右键双
击和鼠标当前位置坐标等。
③鼠标事件:
鼠标消息的使用:
鼠标当前位置x坐标:鼠标消息变量名.x;
鼠标当前位置y坐标:鼠标消息变量名.y;
当前鼠标消息:鼠标消息变量名.uMsg;
当前鼠标消息可以用于条件判断。
如,
WM_LBUTTONDOWN==鼠标消息变量名.uMsg //如果鼠标左键按下
WM_RBUTTONDOWN==鼠标消息变量名.uMsg //如果鼠标右键按下
例如:
#include"graphics.h"
#include<stdlib.h>int main()
{initgraph(600,600); //打开绘图窗口IMAGE img; //定义图片对象loadimage(&img,"图片\\手套.jpg", 100, 100); //加载图片setlinecolor(RED); //设置画线颜色和样式setlinestyle(0, 5);//line(20, 20, 580, 580);setfillcolor(GREEN); //设置填充颜色和样式setfillstyle(BS_HATCHED,0);fillrectangle(20, 20, 580, 580); //填充矩形setfillstyle(BS_HATCHED,1); //绘制圆形fillcircle(300, 300, 40);putimage(300, 300, &img); //贴上图片system("pause"); //暂停程序closegraph(); //关闭绘图窗口return 0;
}
____________#
【小黑chenchen】14番外:图形库相关推荐
- python的类和对象——类的静态字段番外篇
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- Java番外篇2——jdk8新特性
Java番外篇2--jdk8新特性 1.Lambda 1.1.无参无返回值 public class Test {interface Print{void print();}public static ...
- Java番外篇1——正则表达式
Java番外篇1--正则表达式 1.什么是正则表达式 正则表达式定义了字符串的模式 正则表达式可以用来搜索.编辑或处理文本 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别 2.正则表达式 ...
- 你所能用到的数据结构之番外篇---逆袭的面向对象(一)
对于番外篇,我深刻能明白在大多数人眼里就和电视剧的广告一样,说实话,我也不喜欢这种感觉,因为这样会让人觉得是在欺骗消费者啊~~~阿西巴~~~但是我实在发现如果不在这里对面向对象来个入门级的介绍,后面的 ...
- QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
QBlog简介: QBlog:是一个套博客系统,开源.支持多用户.多语言.及方便的多数据库切换. QBlog下载:http://www.cyqdata.com/download/article-det ...
- Spark Core源码精读计划 番外篇A:AppStatusStore的底层实现
目录 前言 App状态数据的键值对存储 KVStore InMemoryStore与InMemoryView ElementTrackingStore App状态监听器 LiveEntity 添加清理 ...
- 番外篇——直流电机桥源码分析LED驱动例程开发
[番外篇]直流电机桥源码分析&LED驱动例程开发 直流电机桥测试代码分析 直流电机桥驱动代码分析 仿写HBLED驱动程序 利用芯片手册修改设备树 利用原理图寻找引脚 仿写代码 仿写HBLED测 ...
- hg226g 虚拟服务器,华为HG8245H救砖番外篇之利用JTAG完成硬件初始化
原文发在我的bloghttp://blog.csersoft.net/archives/196 前言 前几天使用UBoot恢复mtd分区时因为误操作导致flash全部被擦除.这下设备上电时连Start ...
最新文章
- YOLO算法史上最全综述:从YOLOv1到YOLOv5
- Reduce Join介绍及案例
- SpringBoot面向切面编程-用AOP方式管理日志
- mysql从字符串中取子字符串_如何从开始于MySQL中特定位置的字符串中提取子字符串?...
- 【软件构造】第一章 软件构造基础(1)
- figma 安装插件_我制作Figma插件的经验
- 【动态规划】完全背包问题
- linux禁用防火墙配置,CentOS Linux防火墙配置及关闭
- JavaScript 获取浏览器版本
- python识别发票二维码_python如何实现二维码的生成和识别
- ubuntu下使用yocto制作龙芯文件系统
- 【小程序】一个提醒休息的小程序,供大家娱乐
- jquery ajax和servlet,浅谈ajax在jquery中的请求和servlet中的响应
- python写鼠标宏_最全Pycharm教程(24)——Pycharm编辑器功能之宏定义
- Word多级标题出现黑块的解决思路
- python列表姓氏_Python 批量生成中文姓名(百家姓)
- 工业镜头与普通镜头有什么区别?
- 手把手教大家搭建微信公众号查题功能
- Markdown 文本编辑图片居中显示以及题注
- 同步锁 (synchronized)
热门文章
- pyspark实践之 map/flatMap应用示例
- python 字典 删除指定_python删除字典中的某个值
- 测绘计算机编程在在道路中的应用,全站仪与计算机相结合在线路放样中的应用...
- MWC18见闻录|阿里云的第一届“巴交会”
- 半导体中的杂质和缺陷能级
- Linux 常用命令学习——cd 命令和pwd命令
- python读取视频分辨率_VideoCapture()读取多个视频和帧分辨率问题
- LasyOpticalDesigner0.1.0开发者日志(伍)2D操作模块
- 高数期末试卷及答案(九)
- Redis - 持久化有哪几种方式,怎么选?