基本绘图和文字输出

您所在的位置:网站首页 qbasic程序设计 基本绘图和文字输出

基本绘图和文字输出

2023-12-11 05:44| 来源: 网络整理| 查看: 265

文章目录 一、基本说明二、基本概念2.1 - 颜色2.2 - 坐标2.3 - 设备 三、绘图设备相关函数3.1 - initgraph3.2 - closegraph3.3 - cleardevice 四、颜色模型3.1 - RGB3.2 - HSLtoRGB3.3 - HSVtoRGB 五、图形颜色及样式设置相关函数5.1 - setbkcolor5.2 - setbkmode5.3 - setfillcolor5.4 - setlinecolor5.5 - setlinestyle 六、图形绘制相关函数6.1 - 绘图函数的分类6.2 - 圆6.3 - 示例 七、文字输出相关函数7.1 - outtextxy7.2 - settextcolor7.3 - settextstyle 八、示例程序8.1 - 彩虹8.2 - 字符阵

一、基本说明

EasyX 是针对 C++ 的图形库,可以帮助 C/C++ 初学者快速上手图形和游戏编程。

比如可以基于 EasyX 图形库很快地用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。

二、基本概念 2.1 - 颜色

EasyX 使用 24 bit 真彩色,不支持调色板模式。

像素是计算机屏幕上所能显示的最小单位,用来表示图像的单位。

分辨率指屏幕上像素的数目,为了控制像素的亮度和彩色深度,每个像素需要很多个二进制位来表示,如果要显示 256 种颜色,则每个像素至少需要 8 位(一个字节)来表示,即 2 ^ 8 = 256;如果要显示 24 位真彩色,则每个像素要用 3 个字节存储。

真彩色是指图像中的每个像素值都分成 R、G、B 三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色。

例如图像深度为 24,用 R: G: B = 8: 8: 8 来表示色彩,即 R、G、B 都用 8 位来表示,每个基色分量占一个字节,共 3 个字节,每个像素的颜色就是由这 3 个字节中的数值直接决定,可生成的颜色数就是 2 ^ 24 = 16 777 216 种。24 位真彩色可以达到人眼分辨的极限。

表示颜色的方法:

用预定义常量表示颜色,例如 BLACK、WHITE、BLUE 等。用 16 进制数字表示颜色,16 进制的颜色表示规则为:0xbbggrr(bb = 蓝,gg = 绿,rr = 红)用 RGB 宏合成颜色(详见 RGB)。用 HSLtoRGB、HSVtoRGB 转换其他色彩模型到 RGB 颜色(详见 HSLtoRGB、HSVtoRGB )。 在这里插入图片描述 2.2 - 坐标

在 EasyX 中,坐标分两种:物理坐标和逻辑坐标。

物理坐标:

物理坐标是描述设备的坐标体系。

坐标原点在设备的左上角,X 轴向右为正,Y 轴向下为正,度量单位是像素。

坐标原点、坐标轴方向、缩放比例都不能改变。

逻辑坐标:

逻辑坐标是在程序中用于绘图的坐标体系。

坐标默认的原点在窗口的左上角,X 轴向右为正,Y 轴向下为正,度量单位是点。

默认情况下,逻辑坐标与物理坐标是一一对应的,一个逻辑点等于一个物理像素。

在本手册中,凡是没有注明的坐标,均指逻辑坐标。

2.3 - 设备

"设备",是指绘图表面。

在 EasyX 中,设备分为两种,一种是默认的绘图窗口,另一种是 IMAGE 对象。通过 SetWorkingImage 函数可以设置当前用于绘图的设备。

设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。

三、绘图设备相关函数 3.1 - initgraph

这个函数用于初始化绘图窗口。

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

参数:

width:绘图窗口的宽度。

height:绘图窗口的高度。

flag:绘图窗口的样式,默认为 NULL。可以为以下值:

值含义EW_DBLCLKS在绘图窗口中支持鼠标双击(double clicks)事件EW_NOCLOSE禁用绘图窗口的关闭按钮(no close)EW_NOMINIMIZE禁用绘图窗口的最小化按钮(no minimize)EW_SHOWCONSOLE显示控制台窗口(show console)

返回值:

返回新建绘图窗口的句柄(HWND)。

示例:

// 创建一个尺寸为 640 x 480 的绘图窗口 initgraph(640, 480); // 创建一个尺寸为 640 x 480 的绘图窗口,同时显示控制台窗口 initgraph(640, 480, EW_SHOWCONSOLE); // 创建一个尺寸为 640 x 480 的绘图窗口,同时显示控制台窗口,并禁用关闭按钮 initgraph(640, 480, EW_SHOWCONSOLE | EW_NOCLOSE); 3.2 - closegraph

这个函数用于关闭绘图窗口。

void closegraph(); 3.3 - cleardevice

这个函数使用当前背景色清空绘图设备。

void cleardevice(); 四、颜色模型 3.1 - RGB

RGB 宏用于将红、绿、蓝颜色分量合成颜色。

COLORREF RGB(BYTE byRed, BYTE byGreen, BYTE byBlue);

参数:

byRed:颜色的红色部分,取值范围:0 ~ 255。byGreen:颜色的绿色部分,取值范围:0 ~ 255。byBlue:颜色的蓝色部分,取值范围:0 ~ 255。

返回值:

返回合成的颜色。 3.2 - HSLtoRGB

该函数用于转换 HSL 颜色为 RGB 颜色。

COLORREF HSLtoRGB(float H, float S, float L);

参数:

H:原 HSL 颜色模型的 Hue(色相)分量,0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3