| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1983 人关注过本帖
标题:求助:picturebox实时曲线图形整体左移时出现重叠问题?
只看楼主 加入收藏
mickey2028
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2017-2-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
求助:picturebox实时曲线图形整体左移时出现重叠问题?
实时曲线绘制到picturebox最右边极限时,图形整体左移时就会出现重叠,希哪位大虾解决一下,谢谢!!
图片附件: 游客没有浏览图片的权限,请 登录注册
PictureBox中曲线左平移.rar (6.22 KB)
搜索更多相关主题的帖子: 极限 
2017-02-13 21:45
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
初步看了一下代码,问题出在 前台翻后台时位置有重叠。
正在测试,你属性用错了。


授人于鱼,不如授人于渔
早已停用QQ了
2017-02-14 10:49
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:0 
这种情况可以用巧方法绕过去的。
两个Picturebox,Picturebox1作为Picturebox2的容器。Picturebox2也可以是chart
Picturebox2中不断绘制曲线,并根据曲线X轴调整宽度,同时left不断调整使之向左移动
Picturebox1启用滚动条,并在更新曲线代码中使滚动条始终在最后即可。
这样就不会
2017-02-14 10:58
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
不看了,没时间测试,复制图像时出的问题。这个需要静下心来研究,我以前也是卡在这里,所以最后是保存所有需要绘图的点,然后后台全部重新绘制过。

你参考吧!
https://bbs.bccn.net/thread-306299-1-1.html

授人于鱼,不如授人于渔
早已停用QQ了
2017-02-14 11:12
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
主要代码的问题不大,对出边界的判断要提前,画图要在前台画,后台仅做复制过去再复制过来的动作,另15缇=1像素,我将你的50改成60了,这样不会出现除不尽的情况,如此修改后的测试正常,代码如下:
程序代码:
Option Explicit

Dim TimeCount As Integer
Dim DataFromCom As Integer
Dim DataFromComLast As Integer

Private Sub Form_Load()

   '后台进行绘图
    picBack.Visible = False

    PicScale picBack '调整图像框的坐标系
    PicXLine picBack
    
    '前台进行显示
    PicScale picShow '调整图像框的坐标系
    PicXLine picShow

End Sub

Private Sub Timer1_Timer()

   DataFromComLast = DataFromCom

    Randomize
    DataFromCom = CInt(1000 * Rnd)

    TimeCount = TimeCount + 1
    
    If ((TimeCount + 1) * 60 > picBack.Width) Then
       picBack.PaintPicture picShow.Image, -60, 0, picShow.Width, picShow.Height, 0, 0, picShow.Width, picShow.Height '从前台复制到后台
       picShow.PaintPicture picBack.Image, 0, 0, picShow.Width, picShow.Height, 0, 0, picBack.Width, picBack.Height '从后台显示到前台
       TimeCount = TimeCount - 1
    End If

    DrawRealLine picShow, TimeCount, DataFromCom, DataFromComLast 'OK


End Sub

Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)

   picX.Line ((TimeCountX - 1) * 60, DataFromComLastX)-(TimeCountX * 60, DataFromComX), vbGreen

End Sub

Private Sub PicScale(picX As PictureBox) '调整图像框的坐标系

    picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, 0)
    
End Sub

Private Sub PicXLine(picX As PictureBox)
    
    Dim intStep As Integer
    
    For intStep = 0 To 5000 Step 500
        picX.Line (0, intStep)-(picX.ScaleWidth, intStep), vbWhite
    Next
    
End Sub

2017-02-14 20:22
mickey2028
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2017-2-13
收藏
得分:0 
回复 5楼 xzlxzlxzl
这样修改的代码还不行啊!
2017-02-14 20:45
mickey2028
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2017-2-13
收藏
得分:0 
回复 4楼 风吹过b
四楼的高手不错!可以借鉴,谢谢了!!
2017-02-14 20:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
我测试过了 50 改 60 ,还出现问题,然后继续 研究时,发现他的坐标系修改过了,就没时间去研究了。

授人于鱼,不如授人于渔
早已停用QQ了
2017-02-14 20:47
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:15 
在我电脑上运行正常,我并不是简单50改60的,仔细看我5楼的代码你就看的出来。我发工程,你运行下。
PictureBox中曲线左平移.rar (5.88 KB)


[此贴子已经被作者于2017-2-14 20:51编辑过]

2017-02-14 20:49
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
主要修改如下:
    If ((TimeCount + 1) * 60 > picBack.Width) Then   //提前判断是否出边界
       picBack.PaintPicture picShow.Image, -60, 0, picShow.Width, picShow.Height, 0, 0, picShow.Width, picShow.Height '从前台复制到后台
       picShow.PaintPicture picBack.Image, 0, 0, picShow.Width, picShow.Height, 0, 0, picBack.Width, picBack.Height //从后台显示到前台是立即进行的,原来是在判断语句外边
       TimeCount = TimeCount - 1
    End If

    DrawRealLine picShow, TimeCount, DataFromCom, DataFromComLast 'OK //这句是对前台画图,你的是对picBack画图
2017-02-14 20:56
快速回复:求助:picturebox实时曲线图形整体左移时出现重叠问题?
数据加载中...
 
   



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

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