怎么样根据采集的数据实时画图呀,要能自动调整坐标系的那种? 采集到的数据的取值范围不是确定,要求可以根据采集的数据自动调整坐标系,而且要求可以缩放,应该怎么做?请各位大虾指教,最好有代码,我只会用vb,土土的说! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用chart控件,可以自动调整坐标系 你可以在网上找一下trend控件,一个很好的实时图像控件.我自己还留有一个,你想要的话,发邮件给我:[email protected] ''获取价格差. MySinglePriceChange = MySingleCurrentPrice - MySingleLastPrice ''获取柱线的基准高和宽 MySingleBasicHeight = MyPictureDrawColumn.Height / (MySingleHeightPrice - MySingleLowPrice) ' + 2000 * Len(MySingleHeightPrice)) ' - MySingleLowPrice + 2 * Len(MySingleHeightPrice)) 'MyIntegerWholeDrawStockNumber) MySingleBasicWidth = MyPictureDrawColumn.Width / MyIntegerWholeDrawStockNumber ''计算矩形的坐下角和右上角。 MyIntegerFromX = -MySingleBasicWidth '第一天的先从x=0处画。 MyIntegerFromY = (MySingleLastPrice - MySingleLowPrice) * MySingleBasicHeight MyIntegerToX = MySingleBasicWidth + MyIntegerFromX If MyArrayBooleanPriceUpDown(2) Then MyIntegerToY = MySinglePriceChange * MySingleBasicHeight + MyIntegerFromY Else MyIntegerToY = MyIntegerFromY - MySinglePriceChange * MySingleBasicHeight End If ''当日涨用红柱,当日跌用绿柱. If MySinglePriceChange > 0 Then MyByteQBColor = 4 '上涨,保存红色值:4 红色 Else MyByteQBColor = 2 '下跌,保存绿色值:2 绿色 End If ''画矩形。 'Line (MyIntegerFromX, MyIntegerFromY)-(MyIntegerToX, MyIntegerToY), QBColor(MyQBColor), BF For MyTempByteStock = (MyIntegerWholeDrawStockNumber - 2) To 1 Step -1 MySingleLastPrice = MySingleCurrentPrice 'MySingleLastPrice获取上一天的价格. MySingleCurrentPrice = MyArrayIntegerWholeDrawStock(MyTempByteStock) '获取应绘的股票价格. MySinglePriceChange = MySingleCurrentPrice - MySingleLastPrice '获取价格差,决定柱线的颜色和方向. MyIntegerFromX = MyIntegerToX '从上一条柱的结束点开始花. MyIntegerFromY = MyIntegerToY MyIntegerToX = MyIntegerFromX + MySingleBasicWidth ''判断柱线方向 If MySinglePriceChange > 0 Then '上涨 MyIntegerToY = MySinglePriceChange * MySingleBasicHeight + MyIntegerFromY MyByteQBColor = 4 '上涨,保存红色. Else '下跌. If MyByteQBColor = 4 Then '昨日涨,近日向上画. MyIntegerToY = Abs(MySinglePriceChange) * MySingleBasicHeight + MyIntegerFromY Else '昨日跌,今日向下画 MyIntegerToY = MyIntegerFromY - Abs(MySinglePriceChange) * MySingleBasicHeight End If MyByteQBColor = 2 '下跌,保存绿色. End If 'MyIntegerFromY = MyPictureDrawColumn.Height - MyIntegerFromY 'MyIntegerToY = MyPictureDrawColumn.Height - MyIntegerToY 'Debug.Print MyIntegerFromY; MyIntegerToY If MyPictureDrawColumn.Height - MyIntegerToY < 0 Then MsgBox (MyIntegerToY - MyIntegerFromY) * MySingleBasicHeight End If ''画柱线. MyPictureDrawColumn.Line (MyIntegerFromX, MyPictureDrawColumn.Height - MyIntegerFromY)-(MyIntegerToX, MyPictureDrawColumn.Height - MyIntegerToY), QBColor(MyByteQBColor), BF Next MyTempByteStock这是我程序的一部分,还有点小bug但应该对你有帮助 新手求教listbox的vbtab问题. 请教VBA使用EXCEL的数据--用ADO方法 求sendmessage的用处 关于在登录窗口使用winsock的问题,应该很简单~~ 如何VB编程关闭shell hardware detection和services服务? 有关用程序代码实现压缩Access数据库 vb的呼唤? 一个窗体在标题栏及边框被隐藏后,如何使用边框的一些特有功能 VB通信问题 急!急!急!急!这个问题好奇怪,请哪位大侠帮帮小妹,万分感谢! 斑竹这是为什么?斑竹这是为什么?斑竹这是为什么? 为什么我的信誉分是104而在帖子上却是98我不明白? 现在已经不得不说再见了!
MySinglePriceChange = MySingleCurrentPrice - MySingleLastPrice ''获取柱线的基准高和宽
MySingleBasicHeight = MyPictureDrawColumn.Height / (MySingleHeightPrice - MySingleLowPrice) ' + 2000 * Len(MySingleHeightPrice)) ' - MySingleLowPrice + 2 * Len(MySingleHeightPrice)) 'MyIntegerWholeDrawStockNumber)
MySingleBasicWidth = MyPictureDrawColumn.Width / MyIntegerWholeDrawStockNumber
''计算矩形的坐下角和右上角。
MyIntegerFromX = -MySingleBasicWidth '第一天的先从x=0处画。
MyIntegerFromY = (MySingleLastPrice - MySingleLowPrice) * MySingleBasicHeight
MyIntegerToX = MySingleBasicWidth + MyIntegerFromX
If MyArrayBooleanPriceUpDown(2) Then
MyIntegerToY = MySinglePriceChange * MySingleBasicHeight + MyIntegerFromY
Else
MyIntegerToY = MyIntegerFromY - MySinglePriceChange * MySingleBasicHeight
End If
''当日涨用红柱,当日跌用绿柱.
If MySinglePriceChange > 0 Then
MyByteQBColor = 4 '上涨,保存红色值:4 红色
Else
MyByteQBColor = 2 '下跌,保存绿色值:2 绿色
End If
''画矩形。
'Line (MyIntegerFromX, MyIntegerFromY)-(MyIntegerToX, MyIntegerToY), QBColor(MyQBColor), BF
For MyTempByteStock = (MyIntegerWholeDrawStockNumber - 2) To 1 Step -1
MySingleLastPrice = MySingleCurrentPrice 'MySingleLastPrice获取上一天的价格.
MySingleCurrentPrice = MyArrayIntegerWholeDrawStock(MyTempByteStock) '获取应绘的股票价格.
MySinglePriceChange = MySingleCurrentPrice - MySingleLastPrice '获取价格差,决定柱线的颜色和方向.
MyIntegerFromX = MyIntegerToX '从上一条柱的结束点开始花.
MyIntegerFromY = MyIntegerToY
MyIntegerToX = MyIntegerFromX + MySingleBasicWidth
''判断柱线方向
If MySinglePriceChange > 0 Then '上涨
MyIntegerToY = MySinglePriceChange * MySingleBasicHeight + MyIntegerFromY
MyByteQBColor = 4 '上涨,保存红色.
Else '下跌.
If MyByteQBColor = 4 Then '昨日涨,近日向上画.
MyIntegerToY = Abs(MySinglePriceChange) * MySingleBasicHeight + MyIntegerFromY
Else '昨日跌,今日向下画
MyIntegerToY = MyIntegerFromY - Abs(MySinglePriceChange) * MySingleBasicHeight
End If
MyByteQBColor = 2 '下跌,保存绿色.
End If
'MyIntegerFromY = MyPictureDrawColumn.Height - MyIntegerFromY
'MyIntegerToY = MyPictureDrawColumn.Height - MyIntegerToY
'Debug.Print MyIntegerFromY; MyIntegerToY
If MyPictureDrawColumn.Height - MyIntegerToY < 0 Then
MsgBox (MyIntegerToY - MyIntegerFromY) * MySingleBasicHeight
End If
''画柱线.
MyPictureDrawColumn.Line (MyIntegerFromX, MyPictureDrawColumn.Height - MyIntegerFromY)-(MyIntegerToX, MyPictureDrawColumn.Height - MyIntegerToY), QBColor(MyByteQBColor), BF Next MyTempByteStock
这是我程序的一部分,还有点小bug但应该对你有帮助