| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1773 人关注过本帖
标题:萌新求助,有关图片图画实时曲线 - 最后一段线出现问题
只看楼主 加入收藏
scaxxm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
萌新求助,有关图片图画实时曲线 - 最后一段线出现问题
简单说明下,自己写了个类似串口助手的程序,然后把串口接收到的数据 在 图片框中用line显示出来。我是这样处理的:x轴规定(-60,660),我只用了(0,600) ,定时100ms,定时事件中,在图片框1先用line显示600个点数据,到了601时,把图片框1的图片放到图片框2,清空图片图1,把图片框2中的(1,600)共599单位长度的图片放回到图片框1的(0,599)共599单位长度的位置上,在图片框1的x=600的地方画上第601个数据。此后的数据都是这种方法。  测试结果是,每次最后一个数据line的时候,line画线出来瞬间后一半部分消失。。 比如,最后一段线是从(599,10)画到(600,50),线完整的画出来后瞬间,这段线后一半部分消失,前一半部分还在。。 每次最后更新的数据画线的时候都出现这种情况,我该怎么办,想了好几天了想不出来哪里有问题,实在没办法求助论坛的老师,可以帮我看下程序吗,很简单的,主要时定时事件中的代码部分,我觉得问题应该出在这个地方。。
先放定时事件中的代码:
图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:串口接收曲线显示在form4中


[此贴子已经被作者于2021-6-8 16:57编辑过]

搜索更多相关主题的帖子: 数据 图片 定时 图片框 出现 
2021-06-08 16:48
scaxxm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-27
收藏
得分:0 
回复 楼主 scaxxm
这是我的程序代码,曲线显示在form4中
vb6pro - 20210608.rar (11.34 KB)
2021-06-08 16:50
scaxxm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-27
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2021-06-08 16:56
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:76
帖 子:278
专家分:1357
注 册:2006-6-25
收藏
得分:10 
        Picture1.Cls
        Picture1.PaintPicture Picture2.Image, 0, 0, 599, 360, 1, 0, 599, 360
        Picture1.Line (599, LastY)-(NowX, NowY), QBColor(4)     '我这里明明在X轴的(599,600)画线了,为什么调试的时候这段线画出来后瞬间又会消失掉前一半部分?
        
你在这三句代码上设置断点,就会明白了。

 Picture1.Line (599, LastY)-(NowX, NowY), QBColor(4) 这句你想画上面的一段线,但是运行第二个定时后,lastY=nowY了,所以就不会画线了,只画了一个点。
2021-06-09 09:12
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
我以前也用过 PaintPicture移动折线,好多次也是出现线条断裂情况,最后才一般使用每次重画所有的线条的方法。
没时间看你的代码,如果最后没解决,建议也使用这种方法来。

授人于鱼,不如授人于渔
早已停用QQ了
2021-06-09 10:58
scaxxm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-27
收藏
得分:0 
回复 4楼 cwa9958
谢谢,听了你的建议,我设置断点,发现是这句话执行后出现问题:picture1.PaintPicture Picture2.Image, 0, 0, 599, 360, 1, 0, 599, 360
当前循环最后一条线确实完整的画出来了,下一个定时事件的时候,执行这条语句后:picture1.PaintPicture Picture2.Image, 0, 0, 599, 360, 1, 0, 599, 360,就出现最后一条的后一半部分消失。
我猜测可能是:图片框1截图到图片框2 或者 图片框2截图回图片框1的时候,边界出问题了。也就是其他都是正常的,刚好临界的地方出现问题,导致最后一条线消失了后一半部分。
我目前修改如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

我修改成了这样:Picture1.PaintPicture Picture2.Image, 0, 0, 600, 360, 1, 0, 600, 360
把截图的宽度故意改成了600,实际我只需要599就行了。
目前曲线移动效果看上去没什么问题,但是从程序代码执行结果的角度和所要达到的效果来讲(效果就是曲线移动时无缝),可能问题还是存在。。
2021-06-10 14:55
scaxxm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-27
收藏
得分:0 
回复 5楼 风吹过b
谢谢,我目前是用了2套方案。一个用图片1和图片2截图切换的方法,一个是用600个数据的数组,每次定时事件都全部重新画所有的线。
2021-06-10 14:57
快速回复:萌新求助,有关图片图画实时曲线 - 最后一段线出现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027450 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved