📄 gui_basic.h
字号:
/****************************************************************************************
* 文件名:GUI_BASIC.H
* 功能:GUI基本画图函数。
* 说明:
****************************************************************************************/
#ifdef GUI_BASIC_GLOBALS
#define GUI_BASIC_EXT
#else
#define GUI_BASIC_EXT extern
#endif
GUI_BASIC_EXT TCOLOR disp_color;
GUI_BASIC_EXT TCOLOR back_color;
#define GUI_LCM_XMAX 240 /* 定义液晶x轴的像素数 */
#define GUI_LCM_YMAX 320 /* 定义液晶y轴的像素数 */
/* 定义坐标数据结构 */
typedef struct
{ uint32 x; // x坐标变量
uint32 y; // y坐标变量
}
PointXY;
GUI_BASIC_EXT uint8 const DCB2HEX_TAB[8];
/****************************************************************************
* 名称:GUI_Point()
* 功能:在指定位置上画点。
* 入口参数:x 指定点所在列的位置
* y 指定点所在行的位置
* color 显示颜色
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出缓冲区范围。
****************************************************************************/
GUI_BASIC_EXT uint8 GUI_Point(uint8 x, uint16 y, uint16 color);
/****************************************************************************
* 名称:GUI_HLine()
* 功能:画水平线。
* 入口参数:x0 水平线起点所在列的位置
* y0 水平线起点所在行的位置
* x1 水平线终点所在列的位置
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出缓冲区范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_HLine(uint8 x0, uint16 y0, uint8 x1, uint16 color);
/***********************************************************************
* 名称:GUI_RLine()
* 功能:画竖直线。根据硬件特点,实现加速。
* 入口参数:x0 垂直线起点所在列的位置
* y0 垂直线起点所在行的位置
* y1 垂直线终点所在行的位置
* color 显示颜色(对于黑白色LCM,为0时灭,为1时显示)
* 出口参数: 无
* 说明:操作失败原因是指定地址超出缓冲区范围。
***********************************************************************/
GUI_BASIC_EXT void GUI_RLine(uint8 x0, uint16 y0, uint16 y1, uint16 color);
/****************************************************************************
* 名称:GUI_CmpColor()
* 功能:判断颜色值是否一致。
* 入口参数:color1 颜色值1
* color2 颜色值2
* 出口参数:返回1表示相同,返回0表示不相同。
* 说明:由于颜色类型TCOLOR可以是结构类型,所以需要用户编写比较函数。
****************************************************************************/
GUI_BASIC_EXT int GUI_CmpColor(uint16 color1, uint16 color2);
/****************************************************************************
* 名称:GUI_CopyColor()
* 功能:拷贝颜色值
* 入口参数:color1 颜色值1
* color2 颜色值2
* 出口参数:
* 说明:由于颜色类型TCOLOR可以是结构类型,所以需要用户编写比较函数。
****************************************************************************/
GUI_BASIC_EXT void GUI_CopyColor(TCOLOR *color1, TCOLOR color2);
/****************************************************************************
* 名称:GUI_Rectangle()
* 功能:画矩形。
* 入口参数: x0 矩形左上角的x坐标值
* y0 矩形左上角的y坐标值
* x1 矩形右下角的x坐标值
* y1 矩形右下角的y坐标值
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Rectangle(uint32 x0, uint32 y0, uint32 x1, uint32 y1, uint16 color);
/****************************************************************************
* 名称:GUI_RectangleFill()
* 功能:填充矩形。画一个填充的矩形,填充色与边框色一样。
* 入口参数: x0 矩形左上角的x坐标值
* y0 矩形左上角的y坐标值
* x1 矩形右下角的x坐标值
* y1 矩形右下角的y坐标值
* color 填充颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_RectangleFill(uint32 x0, uint32 y0, uint32 x1, uint32 y1, uint16 color);
/****************************************************************************
* 名称:GUI_Square()
* 功能:画正方形。
* 入口参数: x0 正方形左上角的x坐标值
* y0 正方形左上角的y坐标值
* with 正方形的边长
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Square(uint32 x0, uint32 y0, uint32 with, uint16 color);
/****************************************************************************
* 名称:GUI_Line()
* 功能:画任意两点之间的直线。
* 入口参数: x0 直线起点的x坐标值
* y0 直线起点的y坐标值
* x1 直线终点的x坐标值
* y1 直线终点的y坐标值
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Line(uint32 x0, uint32 y0, uint32 x1, uint32 y1, uint16 color);
/****************************************************************************
* 名称:GUI_LineWith()
* 功能:画任意两点之间的直线,并且可设置线的宽度。
* 入口参数: x0 直线起点的x坐标值
* y0 直线起点的y坐标值
* x1 直线终点的x坐标值
* y1 直线终点的y坐标值
* with 线宽(0-50)
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_LineWith(uint32 x0, uint32 y0, uint32 x1, uint32 y1, uint8 with, uint16 color);
/****************************************************************************
* 名称:GUI_LineS()
* 功能:多个点之间的连续连线。从第一点连到第二点,再连到第三点...
* 入口参数: points 多个点坐标数据的指针,数据排列为(x0,y0)、(x1,y1)、(x2,y2)...
* no 点数目,至少要大于1
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_LineS(uint32 const *points, uint8 no, uint16 color);
/****************************************************************************
* 名称:GUI_Circle()
* 功能:指定圆心位置及半径,画圆。
* 入口参数: x0 圆心的x坐标值
* y0 圆心的y坐标值
* r 圆的半径
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Circle(uint32 x0, uint32 y0, uint32 r, uint16 color);
/****************************************************************************
* 名称:GUI_CircleFill()
* 功能:指定圆心位置及半径,画圆并填充,填充色与边框色一样。
* 入口参数: x0 圆心的x坐标值
* y0 圆心的y坐标值
* r 圆的半径
* color 填充颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_CircleFill(uint32 x0, uint32 y0, uint32 r, uint16 color);
/****************************************************************************
* 名称:GUI_Ellipse()
* 功能:画正椭圆。给定椭圆的四个点的参数,最左、最右点的x轴坐标值为x0、x1,最上、最下点
* 的y轴坐标为y0、y1。
* 入口参数: x0 最左点的x坐标值
* x1 最右点的x坐标值
* y0 最上点的y坐标值
* y1 最下点的y坐标值
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Ellipse(uint32 x0, uint32 x1, uint32 y0, uint32 y1, uint16 color);
/****************************************************************************
* 名称:GUI_EllipseFill()
* 功能:画正椭圆,并填充。给定椭圆的四个点的参数,最左、最右点的x轴坐标值为x0、x1,最上、最下点
* 的y轴坐标为y0、y1。
* 入口参数: x0 最左点的x坐标值
* x1 最右点的x坐标值
* y0 最上点的y坐标值
* y1 最下点的y坐标值
* color 填充颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_EllipseFill(uint32 x0, uint32 x1, uint32 y0, uint32 y1, uint16 color);
/****************************************************************************
* 名称:GUI_FloodFill()
* 功能:图形填充,将指定点内的封闭图形进行填充。对指定点的颜色区域进行填充,即不是该颜色
* 的像素为边界(如,指定点上的颜色为红色,则其它颜色像素均为边界)。
* 入口参数: x0 指定点的x坐标值
* y0 指定点的y坐标值
* color 填充颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围、指定点不在封闭图形内。
****************************************************************************/
GUI_BASIC_EXT void GUI_FloodFill(uint32 x0, uint32 y0, uint16 color);
/****************************************************************************
* 名称:GUI_Arc4()
* 功能:画弧。起点及终点只能为0度-90度、90度-180度、180度-270度、270度-0度等。即分别
* 为第1-4像限的90度弧。
* 入口参数: x0 圆心的x坐标值
* y0 圆心的y坐标值
* r 圆弧的半径
* angle 画弧的像限(1-4)
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Arc4(uint32 x, uint32 y, uint32 r, uint8 angle, uint16 color);
/****************************************************************************
* 名称:GUI_Arc()
* 功能:指定起点、终点及半径画弧(不能画圆)。使用的是顺时针方向画图。
* 入口参数: x 圆心的x坐标值
* y 圆心的y坐标值
* stangle 起始角度(0-359度)
* endangle 终止角度(0-359度)
* r 圆的半径终点
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Arc(uint32 x, uint32 y, uint32 r, uint32 stangle, uint32 endangle, uint16 color);
/****************************************************************************
* 名称:GUI_Pieslice()
* 功能:指定起点、终点及半径扇形(不能画圆)。使用的是顺时针方向画图。
* 入口参数: x 圆心的x轴坐标值
* y 圆心的y轴坐标值
* stangle 起始角度(0-359度)
* endangle 终止角度(0-359度)
* r 圆的半径终点
* color 显示颜色
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
GUI_BASIC_EXT void GUI_Pieslice(uint32 x, uint32 y, uint32 r, uint32 stangle, uint32 endangle, uint16 color);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -