emWIN——Graph控件的负数刻度

//关键代码节选

        hItem = pMsg->hWin;
        FRAMEWIN_SetText(hItem, "realiot");
        /* 初始化Framewin控件 */
        hItem = pMsg->hWin;
        FRAMEWIN_SetText(hItem, "This is a test for STM32F429 graph");
        FRAMEWIN_SetFont(hItem, GUI_FONT_20_1);
        /* 初始化Graph控件 */
        hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
        GRAPH_SetColor(hItem, GUI_WHITE, GRAPH_CI_BK);
        GRAPH_SetColor(hItem, GUI_BLACK, GRAPH_CI_GRID);
        GRAPH_SetBorder(hItem, 40, 5, 5, 5); //设置左、右、上、下屏幕边距;合适的边距参数可以影响Y轴刻度的显示效果。
        GRAPH_SetGridDistX(hItem, 25);//设置X轴的网格宽度
        GRAPH_SetGridDistY(hItem, 25);//设置Y轴的网格宽度
        GRAPH_SetLineStyleH(hItem, GUI_LS_DOT);
        GRAPH_SetLineStyleV(hItem, GUI_LS_DOT);
        GRAPH_SetGridVis(hItem, 1);

        /* 创建垂直刻度对象 */
        hScaleV = GRAPH_SCALE_Create(20, GUI_TA_HCENTER | GUI_TA_LEFT, GRAPH_SCALE_CF_VERTICAL, 25);
        GRAPH_AttachScale(hItem, hScaleV);

        GRAPH_SCALE_SetOff(hScaleV, 200); //设置Y轴刻度的偏移量,用于产生负数的刻度;本代码对应的屏幕尺寸是800*480
        //而graph控件的位置大致是420高度,考虑到边界的高度,将偏移量设为200,实测Y轴的0刻度是控件中间位置。
        //这样就可以在0刻度的上方生成正数的刻度;在0刻度的下方生成负数的刻度;而刻度的数值大小则由下面的语句决定↓↓↓
        GRAPH_SCALE_SetFactor(hScaleV, 10); //设置Y轴刻度与像素的比例尺,当前语句比例是10,意味着每像素对应刻度尺是10
       //本行代码结合上一行代码,可以生成正数是2000(200*10),负数是-2000(-200*10)的Y轴刻度线。
        /* 创建数据对象 */
        Graphdata = GRAPH_DATA_YT_Create(GUI_RED, 790, 0, 0);
        GRAPH_AttachData(hItem, Graphdata);

 

        //关键代码节选

        hItem = pMsg->hWin;
        FRAMEWIN_SetText(hItem, "realiot");
        /* 初始化Framewin控件 */
        hItem = pMsg->hWin;
        FRAMEWIN_SetText(hItem, "This is a test for STM32F429 graph");
        FRAMEWIN_SetFont(hItem, GUI_FONT_20_1);
        /* 初始化Graph控件 */
        hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
        GRAPH_SetColor(hItem, GUI_WHITE, GRAPH_CI_BK);
        GRAPH_SetColor(hItem, GUI_BLACK, GRAPH_CI_GRID);
        GRAPH_SetBorder(hItem, 40, 5, 5, 5); //设置左、右、上、下屏幕边距;合适的边距参数可以影响Y轴刻度的显示效果。
        GRAPH_SetGridDistX(hItem, 25);//设置X轴的网格宽度
        GRAPH_SetGridDistY(hItem, 25);//设置Y轴的网格宽度
        GRAPH_SetLineStyleH(hItem, GUI_LS_DOT);
        GRAPH_SetLineStyleV(hItem, GUI_LS_DOT);
        GRAPH_SetGridVis(hItem, 1);

        /* 创建垂直刻度对象 */
        hScaleV = GRAPH_SCALE_Create(20, GUI_TA_HCENTER | GUI_TA_LEFT, GRAPH_SCALE_CF_VERTICAL, 25);
        GRAPH_AttachScale(hItem, hScaleV);

        GRAPH_SCALE_SetOff(hScaleV, 200); //设置Y轴刻度的偏移量,用于产生负数的刻度;本代码对应的屏幕尺寸是800*480
        //而graph控件的位置大致是420高度,考虑到边界的高度,将偏移量设为200,实测Y轴的0刻度是控件中间位置。
        //这样就可以在0刻度的上方生成正数的刻度;在0刻度的下方生成负数的刻度;而刻度的数值大小则由下面的语句决定↓↓↓
        GRAPH_SCALE_SetFactor(hScaleV, 10); //设置Y轴刻度与像素的比例尺,当前语句比例是10,意味着每像素对应刻度尺是10
       //本行代码结合上一行代码,可以生成正数是2000(200*10),负数是-2000(-200*10)的Y轴刻度线。
        /* 创建数据对象 */
        Graphdata = GRAPH_DATA_YT_Create(GUI_RED, 790, 0, 0);
        GRAPH_AttachData(hItem, Graphdata);

posted @ 2022-02-18 21:42  realiot  阅读(523)  评论(0)    收藏  举报