| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:vb实时曲线图的问题
只看楼主 加入收藏
lvguidong123
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
vb实时曲线图的问题
vb所采集的实时数据绘制成曲线图时必须是整型吗?没法用小数画曲线图吗?因为我接收的实时数据就是小数。还请大家指点指点
搜索更多相关主题的帖子: 曲线图 
2012-10-26 09:08
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
X坐标建议使用整数,Y坐标任意。

绘图时,Y坐标是需要变换的。如,Y最大值是 1的话,那么你可以按 0.2 为一格进行绘图。

授人于鱼,不如授人于渔
早已停用QQ了
2012-10-26 10:02
lvguidong123
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-24
收藏
得分:0 
回复 2楼 风吹过b
我的Y坐标是这样定义的
Picture1.ScaleMode = 0
Picture1.Scale (-30, 105)-(760, -10)
Picture1.Line (750, 0)-(-30, 0), vbBlack
Picture1.Line (0, 100)-(0, -10)
Dim i As Integer
'标x轴刻度
For i = 0 To 750 Step 30
Picture1.Line (i, 100)-(i, 0)
Picture1.CurrentX = i - 16: Picture1.CurrentY = -2: Picture1.Print i
Next i
'标y轴刻度
For i = 0 To 100 Step 10
Picture1.Line (750, i)-(0, i)
If i <> 0 Then Picture1.CurrentX = -30: Picture1.CurrentY = i: Picture1.Print i
Next i
可是却没法显示小数,只能显示整型。怎么回事啊?还请指教
2012-10-26 10:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:10 
'标y轴刻度
For i = 0 To 100 Step 10               'Y坐标从 0 - 100 ,每次步进 10
Picture1.Line (750, i)-(0, i)
If i <> 0 Then Picture1.CurrentX = -30: Picture1.CurrentY = i: Picture1.Print i
Next i

根据你的最大值来计算Y 。
如果你的Y最后值是 1的话。
那么这段程序就可以写成:
'标y轴刻度
For i = 0 To 100 Step 10
Picture1.Line (750, i)-(0, i)
If i <> 0 Then Picture1.CurrentX = -30: Picture1.CurrentY = i: Picture1.Print i/100
Next i

如果你的最大值是4的话,那么程序就是:
'标y轴刻度
For i = 0 To 100 Step 10
Picture1.Line (750, i)-(0, i)
If i <> 0 Then Picture1.CurrentX = -30: Picture1.CurrentY = i: Picture1.Print i/100*4
Next i

看懂了吗?
画格时不变,只是显示数值时根据你的最大值进行变换一下,缩小来。

授人于鱼,不如授人于渔
早已停用QQ了
2012-10-26 15:35
lvguidong123
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-24
收藏
得分:0 
回复 4楼 风吹过b
谢谢你的指点。我大体看懂了点。如果我想让Y显示的是98.5。显示小数点后一位的数据。该怎么改呢?
2012-10-27 09:27
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
显示部分使用 round() 函数进行 四舍五入操作。

根据最小值和最大值来确定坐标的网格数。
当然,你最小值是 0 ,最大值是 100时,想显示 小数出来,那就谁也没办法。一般每网格是 范围的 1/10或1/20 。

授人于鱼,不如授人于渔
早已停用QQ了
2012-10-28 16:30
初心棒棒糖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-11-14
收藏
得分:0 
2018-01-26 13:10
初心棒棒糖
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-11-14
收藏
得分:0 
2018-01-26 13:10
快速回复:vb实时曲线图的问题
数据加载中...
 
   



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

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