硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2389|回复: 5
收起左侧

[emWin] GRAPH从左往右绘制曲线的疑问

[复制链接]

7

主题

25

回帖

46

积分

新手上路

积分
46
发表于 2018-11-27 15:18:24 | 显示全部楼层 |阅读模式

硬汉哥,你好。
最近我做个一个GRAPH控件从左往右绘制的例子,有点疑问,请教一下,望指点。
参考了这个帖子:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=22517

问题描述:
我需要绘制曲线的变量是从0递增到18,到18后再变为0,然后再递增,依次循环。
然后在刚开始的时候(如图1),这时屏幕还没有数据,数据从左侧边缘出来,按箭头方向递增。
2018-11-27_150055.jpg
当屏幕数据满屏的时候(如图2),这时候屏幕突然跳转了一下,然后数据仍是从左侧边缘出来,但是递增的方向变了。
2018-11-27_150203.jpg

我的问题是:
我理想中的状态就是图2的状态。图1的状态不符合预期。
我想要的效果是:在屏幕没有数据时,数据从左侧出来,但是是以图2中的递增方向出来,而不是图1的方向。

附件里是目前显示效果的视频文件。
请教硬汉哥,如果想要实现这种效果需要这么做?

--------------------------------------------------------------------
下面是GRAPH部分的代码:
  1. //初始化图形控件
  2.                         hWinGRAPH = WM_GetDialogItem(pMsg->hWin,ID_GRAPH_ITEM);//获取图形控件句柄
  3.                         GRAPH_SetColor(hWinGRAPH,GUI_GRAY,GRAPH_CI_BK);//设置数据区域背景颜色
  4.                         GRAPH_SetBorder(hWinGRAPH,0,0,0,0);//设置四边的距离
  5.                         //网格线配置
  6.                         GRAPH_SetGridDistY(hWinGRAPH,50);//Y轴方向栅格间距
  7.                         //GRAPH_SetGridOffY(hWinGRAPH,6);//设置水平网格线的偏移
  8.                         GRAPH_SetLineStyleH(hWinGRAPH,GUI_LS_DOT);//设置水平网格线线型
  9.                         GRAPH_SetGridDistX(hWinGRAPH,500);//X轴方向栅格间距(数值比较大,用于隐藏竖直栅格线)
  10.                         GRAPH_SetGridFixedX(hWinGRAPH,1);//固定X轴方向栅格
  11.                         GRAPH_SetGridVis(hWinGRAPH,1);//设置栅格可见
  12.                        
  13.                         //数据对象配置
  14.                         ahData = GRAPH_DATA_YT_Create(GUI_GREEN,350,0,0);//创建数据对象
  15.                         GRAPH_DATA_YT_SetAlign(ahData,GRAPH_ALIGN_LEFT);//左对齐
  16.                         GRAPH_DATA_YT_MirrorX(ahData,1);//x轴镜像
  17.                         GRAPH_AttachData(hWinGRAPH,ahData);//将数据对象添加到图形控件
  18.                         //刻度配置
  19.                         hScaleV = GRAPH_SCALE_Create(10,GUI_TA_HCENTER,GRAPH_SCALE_CF_VERTICAL,50);//创建刻度对象
  20.                         GRAPH_SCALE_SetFont(hScaleV,&GUI_Font20B_ASCII);//设置刻度的字体
  21.                         GRAPH_SCALE_SetTextColor(hScaleV,GUI_RED);//设置刻度字体颜色
  22.                         GRAPH_SCALE_SetOff(hScaleV,6);//偏移刻度对象(只偏移文字,不偏移网格线)。
  23.                         GRAPH_AttachScale(hWinGRAPH,hScaleV);//将垂直刻度对象添加到图形控件
  24.                         GRAPH_SCALE_SetFactor(hScaleV,0.1);//设置比例刻度因子
复制代码
下面是绘制图形的while循环的代码:
  1. while(1)
  2.         {
  3.                 GUI_Delay(15);
  4.                 if(page_flg ==1)
  5.                 {
  6.                         a+=2;
  7.                         if(a==180)
  8.                                 a=0;
  9.                         GRAPH_DATA_YT_AddValue(ahData,a);
  10.                 }
  11.         }
复制代码


51837a95e6431e0c193bd98210b84e0a.mp4

1.4 MB, 下载次数: 22

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-11-27 17:01:21 | 显示全部楼层
方便在模拟器上面跑下不,我测试修改下。
回复

使用道具 举报

7

主题

25

回帖

46

积分

新手上路

积分
46
 楼主| 发表于 2018-11-27 20:07:02 | 显示全部楼层
本帖最后由 tanjing2017 于 2018-11-27 20:08 编辑
eric2013 发表于 2018-11-27 17:01
方便在模拟器上面跑下不,我测试修改下。

硬汉哥,你好。

附件里是我在模拟器上做的内容。临时从MDK里复制的,排版比较乱,不过GRAPH部分可以正常模拟。
请指教。

------
PC上,我用的code blocks模拟的,不知道V6能不能正常跑起来。代码写在“GUIDEMO_Start.c”中。
2018-11-27_200021.jpg

问题模拟.rar

4.88 MB, 下载次数: 38

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-11-28 02:15:32 | 显示全部楼层
QQ截图20181128021518.jpg
回复

使用道具 举报

7

主题

25

回帖

46

积分

新手上路

积分
46
 楼主| 发表于 2018-11-28 09:56:05 | 显示全部楼层
本帖最后由 tanjing2017 于 2018-11-28 09:57 编辑

硬汉哥,你好。

按你的方法做,可以正常显示的。不过效果是从右到左的。如视频“001.wmv”.

我想要的理想效果是从左往右的。
后来我修改了GRAPH_DATA_YT_Create的参数,附加数据对象的时候先附加满屏350个0 。 2018-11-28_095700.jpg

然后就可以正常显示了,如视频“002.wmv”.。不过刚开始底部有一条0的绿线,看着不是很舒服。不知道如何再优化一下。
003.jpg

002.wmv

402.85 KB, 下载次数: 16

001.wmv

257.11 KB, 下载次数: 12

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115777
QQ
发表于 2018-11-29 03:14:35 | 显示全部楼层
采用这个帖子里面的整体添加方式吧

http://www.armbbs.cn/forum.php?mod=viewthread&tid=24997
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-17 11:48 , Processed in 0.861576 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表