|
硬汉哥,你好。
最近我做个一个GRAPH控件从左往右绘制的例子,有点疑问,请教一下,望指点。
参考了这个帖子:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=22517
问题描述:
我需要绘制曲线的变量是从0递增到18,到18后再变为0,然后再递增,依次循环。
然后在刚开始的时候(如图1),这时屏幕还没有数据,数据从左侧边缘出来,按箭头方向递增。
当屏幕数据满屏的时候(如图2),这时候屏幕突然跳转了一下,然后数据仍是从左侧边缘出来,但是递增的方向变了。
我的问题是:
我理想中的状态就是图2的状态。图1的状态不符合预期。
我想要的效果是:在屏幕没有数据时,数据从左侧出来,但是是以图2中的递增方向出来,而不是图1的方向。
附件里是目前显示效果的视频文件。
请教硬汉哥,如果想要实现这种效果需要这么做?
--------------------------------------------------------------------
下面是GRAPH部分的代码:
- //初始化图形控件
- hWinGRAPH = WM_GetDialogItem(pMsg->hWin,ID_GRAPH_ITEM);//获取图形控件句柄
- GRAPH_SetColor(hWinGRAPH,GUI_GRAY,GRAPH_CI_BK);//设置数据区域背景颜色
- GRAPH_SetBorder(hWinGRAPH,0,0,0,0);//设置四边的距离
- //网格线配置
- GRAPH_SetGridDistY(hWinGRAPH,50);//Y轴方向栅格间距
- //GRAPH_SetGridOffY(hWinGRAPH,6);//设置水平网格线的偏移
- GRAPH_SetLineStyleH(hWinGRAPH,GUI_LS_DOT);//设置水平网格线线型
- GRAPH_SetGridDistX(hWinGRAPH,500);//X轴方向栅格间距(数值比较大,用于隐藏竖直栅格线)
- GRAPH_SetGridFixedX(hWinGRAPH,1);//固定X轴方向栅格
- GRAPH_SetGridVis(hWinGRAPH,1);//设置栅格可见
-
- //数据对象配置
- ahData = GRAPH_DATA_YT_Create(GUI_GREEN,350,0,0);//创建数据对象
- GRAPH_DATA_YT_SetAlign(ahData,GRAPH_ALIGN_LEFT);//左对齐
- GRAPH_DATA_YT_MirrorX(ahData,1);//x轴镜像
- GRAPH_AttachData(hWinGRAPH,ahData);//将数据对象添加到图形控件
- //刻度配置
- hScaleV = GRAPH_SCALE_Create(10,GUI_TA_HCENTER,GRAPH_SCALE_CF_VERTICAL,50);//创建刻度对象
- GRAPH_SCALE_SetFont(hScaleV,&GUI_Font20B_ASCII);//设置刻度的字体
- GRAPH_SCALE_SetTextColor(hScaleV,GUI_RED);//设置刻度字体颜色
- GRAPH_SCALE_SetOff(hScaleV,6);//偏移刻度对象(只偏移文字,不偏移网格线)。
- GRAPH_AttachScale(hWinGRAPH,hScaleV);//将垂直刻度对象添加到图形控件
- GRAPH_SCALE_SetFactor(hScaleV,0.1);//设置比例刻度因子
复制代码 下面是绘制图形的while循环的代码:
- while(1)
- {
- GUI_Delay(15);
- if(page_flg ==1)
- {
- a+=2;
- if(a==180)
- a=0;
- GRAPH_DATA_YT_AddValue(ahData,a);
- }
- }
复制代码
|
|