92 lines
2.9 KiB
C
92 lines
2.9 KiB
C
/*
|
||
* 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_ */
|