cook-c100/src/app/Module/wjh_Graph.h
2024-08-20 19:34:19 +08:00

92 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* wjh_Graph.h
*
* Created on: 2024年7月26日
* Author: wu
*/
#ifndef APP_MODULE_WJH_GRAPH_C_
#define APP_MODULE_WJH_GRAPH_C_
#include "gdd.h"
enum{
GRAPH_DATA_LEN_MAX = 30,//单个数据长度
GRAPH_TITLE_LEN_MAX = 20,//标题长度
GRAPH_DATA_NUM_MAX = 20,//数据
GRAPH_Y_SEG_LEN_OPT = 40,//Y轴线段最优间隔
GRAPH_Y_DASHED_SOLID = 3,//Y轴虚线的实线长度
GRAPH_Y_DASHED_DASHED = 3,//Y轴虚线的虚线长度
};
enum WJH_GRAPH_MODE{
GRAPH_BAR_CHART = 0,//柱状图
GRAPH_LINE_CHART,//折线图
GRAPH_PIE_CHART,//饼图
};
enum WJH_GRAPH_SORT{
GRAPH_SORT_DEFAULT = 0,//默认显示(按顺序显示)
GRAPH_SORT_ASC_BY_DATA,//升序(按数据)
GRAPH_SORT_DES_BY_DATA,//降序(按数据)
GRAPH_SORT_ASC_BY_LABEL,//升序(按标签字典)
GRAPH_SORT_DES_BY_LABEL,//降序(按标签字典)
};
static u32 Graph_ColorDefaultTable[GRAPH_DATA_NUM_MAX] = {
RGB(255, 99, 71) // 鲜艳的橙红色
, RGB(255, 153, 51) // 橙色
, RGB(255, 204, 0) // 黄色
, RGB(153, 204, 0) // 浅绿色
, RGB(51, 204, 51) // 鲜绿色
, RGB(0, 153, 102) // 青色
, RGB(0, 102, 204) // 亮蓝色
, RGB(76, 76, 192) // 紫色调蓝色
, RGB(153, 51, 204) // 紫罗兰色
, RGB(204, 51, 153) // 粉红色
, RGB(255, 102, 102) // 浅红色
, RGB(102, 153, 255) // 亮天蓝色
, RGB(102, 102, 255) // 亮紫色
, RGB(153, 153, 255) // 亮蓝色调
, RGB(102, 204, 102) // 薄荷绿色
, RGB(204, 204, 204) // 浅灰色
, RGB(153, 102, 51) // 棕色
, RGB(51, 51, 153) // 深紫色
, RGB(255, 255, 153) // 淡黄色
, RGB(153, 255, 204) // 浅黄绿色
};
struct WJH_GRAPH_DATA{
u8 xLabel[GRAPH_DATA_LEN_MAX];//表格横坐标数据(每一列的名称)
u32 data;//表格纵坐标的数据(每一列对应的数据值)
};
struct WJH_GRAPH_INFO{
u8 title[GRAPH_TITLE_LEN_MAX];//表格标题
u32 dataNum;//表格数据量
struct WJH_GRAPH_DATA dataTable[GRAPH_DATA_NUM_MAX];
enum WJH_GRAPH_MODE chartMode;//表格显示模式:折线图、柱状图
//仅与坐标系图有关的参数
u8 adaptiveFlag_Y;//Y轴纵坐标值自适应标识如果为True则纵坐标数值根据系统自行计算否则根据用户设置的最大值来绘画
u32 dataMax_Y;//图表显示的最大值
//仅与柱状图有关的参数
u32 linehight;//一行数据显示的高度
u32 lineNum;//一行显示的数据个数
u32 dataColor[GRAPH_DATA_NUM_MAX];//数据对应的颜色
enum WJH_GRAPH_SORT sortFlag;//排序标识
};
HWND wjh_Graph_Initialize(u32 x,u32 y,u32 w,u32 h,u32 dataNum,u8 x_Data[][GRAPH_DATA_LEN_MAX],u32 y_Data[],HWND p_father);
bool_t wjh_Graph_SetTitle(HWND hwnd,u8 *ls_title);
bool_t wjh_Graph_SetShowMode(HWND hwnd,enum WJH_GRAPH_MODE mode);
bool_t wjh_Graph_SetYData(HWND hwnd,u32 dataNum,u32 data[]);
bool_t wjh_Graph_SetSortFlag(HWND hwnd,enum WJH_GRAPH_SORT sortFlag);
//仅与坐标系图有关
bool_t wjh_Graph_SetYDataMAX(HWND hwnd,u32 max);
bool_t wjh_Graph_SetYMAXAdaptive(HWND hwnd);
//仅与饼图有关
bool_t wjh_Graph_SetPieColor(HWND hwnd,u32 colorNum,u32 color[]);
#endif /* APP_MODULE_WJH_GRAPH_C_ */