|
屏幕尺寸320*240,Graph控件WM_INIT_DIALOG如下设置:
ahData = GRAPH_DATA_XY_Create(GUI_BLACK, 200, 0, 0);//最大200数据点
GRAPH_AttachData(hItem, ahData);
……
GRAPH_SetVSizeX(hItem, 1000);//设置显示尺寸1000
GRAPH_SetAutoScrollbar(hItem, GUI_COORD_X, 1);//scrollbar enable
……
GRAPH_SCALE_SetFactor(hScaleH, 0.2);
GRAPH_AttachScale(hItem, hScaleH);
应用程序中添加数据点:
GUI_POINT pointdat[200];
for(uint16_t i=0; i<200; i++)
{
pointdat.x = (uint16_t)(i*5);
pointdat.y = (int16_t)(sin(i/5.0)*50);
GRAPH_DATA_XY_AddPoint(ahData, &pointdat);
}
//左右按键来滚动显示曲线
static uint32_t scrall_val;
void graph_scrall(uint32_t flag)
{
if(flag == 0x00010000)//left
scrall_val -= 100;
else if(flag == 0x00020000)//right
scrall_val += 100;
GRAPH_SetScrollValue(hGraph, GUI_COORD_X, scrall_val);
}
注:此函数有些不当,当scrall_val为0后再减小100,就会变成一个很大的值,然后带入 GRAPH_SetScrollValue中会被截去超出范围的部分,然后变成一个1000附近的值。
实际调试时发现:GRAPH_SetScrollValue中的scrall_val逐步增大时,图像逐步右移(坐标往负的方向走),无法左移看到300以后的曲线,
初始界面如下:
只能往这个方向滚动,而我需要看的是后面的曲线
这是哪里出了问题,有没有用过的?
|
|