国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
VB繪制實(shí)時曲線_VB
在工控制軟件中,實(shí)時曲線的繪制用途非常的廣泛,它可以很直觀的顯示出監(jiān)控數(shù)據(jù)的變化值和變化趨勢。在VB中實(shí)現(xiàn)曲線的繪制有很多種方法,本文介紹一種非常簡單的方法來實(shí)現(xiàn)實(shí)時曲線的繪制。在VB中實(shí)現(xiàn)實(shí)時曲線的繪
在工控制軟件中,實(shí)時曲線的繪制用途非常的廣泛,它可以很直觀的顯示出監(jiān)控數(shù)據(jù)的變化值和變化趨勢。在VB中實(shí)現(xiàn)曲線的繪制有很多種方法,本文介紹一種非常簡單的方法來實(shí)現(xiàn)實(shí)時曲線的繪制。
在VB中實(shí)現(xiàn)實(shí)時曲線的繪制,要利用VB的PictureBox(圖像)控件,和畫線函數(shù)line(x1,y1)-(x2,y2)。PictureBox控件,可以作為一個“容器”,在它的里面可以包含很多的對象。也可以執(zhí)行很多VB的內(nèi)部函數(shù)。
要實(shí)現(xiàn)實(shí)時曲線的繪制,肯定要有外部實(shí)時數(shù)據(jù)的輸入,這里假設(shè)是有一個數(shù)據(jù)從計算機(jī)的串口輸入 定義該數(shù)據(jù)變量為DataFromCom。實(shí)時曲線反映的就是該數(shù)據(jù)。
打開VB6.0中文版,新建一個項(xiàng)目和窗體,修改窗體的屬性,將“Heigh”修改為:8000,“Width”修改為在窗體中放如一個PictureBox控件。然后重新定義PictureBox控件的一些基本屬性,在VB中選中PictureBox控件,直接在它的屬性框中,修改一些屬性參數(shù)。“名稱”改為Pic。 “AutoRedraw”改為:True。“BackColor”改為:&H00004000&(墨綠色背景顏色)。”Heigh”改為:5000。“Width”改為:8000。如圖1所示:
然后要重新定義PictureBox控件的坐標(biāo)系。圖像框的默認(rèn)坐標(biāo)系,是從左上角開始的,不符合我們的畫線要求。修改坐標(biāo)系的目的是讓曲線從圖像框的左邊正中間,開始畫線。修改圖像框的坐標(biāo)系,這里定義一個過程PicScale(),代碼如下:
Private Sub PicScale(picX As PictureBox)
picX.Scale (0, PicX.ScaleHeight)-(picX.ScaleWidth, -PicX.ScaleHeight)
End Sub
一般的實(shí)時曲線顯示的時候在屏幕的正中間有一條基準(zhǔn)線,這里也要畫出這條基準(zhǔn)線,用一個過程PicMidleLine()來實(shí)現(xiàn),代碼如下:
Private Sub PicMidleLine( picX As PictureBox)
picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen '畫出中線
End Sub
要畫一條實(shí)時曲線,坐標(biāo)軸的設(shè)定很重要,在這里把X軸設(shè)定為時間軸,Y軸設(shè)定為數(shù)據(jù)軸。對應(yīng)X軸我們定義一個時間變量TimeCount,TimeCount會隨著時間逐漸遞增,每次遞增,對應(yīng)著一個從串口讀過來的數(shù)據(jù)DataFromCom,這樣圖像框中的(x,y)坐標(biāo)點(diǎn)實(shí)際上就對應(yīng)著(TimeCount,DataFromCom)如果只是當(dāng)TimeCount發(fā)生變化時就在圖像框上畫一個點(diǎn),就只需調(diào)用VB中的畫像素的函數(shù)point(x,y),這里x,y為所畫的點(diǎn)的坐標(biāo)。單這樣畫出來的是一個個不連續(xù)的點(diǎn)。我們想要的是實(shí)時的連續(xù)的曲線,所以要調(diào)用VB中的畫線的函數(shù)line(x1,y1)-(x2,y2),這里(x1,y1)(x2,y2)為所要畫的線的起點(diǎn)和終點(diǎn)的坐標(biāo)。只要把上次串口讀過來的數(shù)據(jù)(這里把它定義為變量DataFromComLast)和現(xiàn)在串口讀過來的數(shù)據(jù)(DataFromCom)和TimeCount相對應(yīng),調(diào)用line(x1,y1)-(x2,y2)函數(shù)就可以在圖像框中畫出實(shí)時的曲線了。把它寫成一個過程如下面的代碼:
Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)
If TimeCountX - 1 > 0 Then
picX.Line (TimeCountX - 1, DataFromComLastX)-(TimeCountX, DataFromComX), vbWhite
End If
End Sub
有了三個過程就可以在圖像框中畫出一條實(shí)時的曲線了。
DrawRealLine()過程中的picX.Line (TimeCountX - 1, DataFromComLastX)-(TimeCountX, DataFromComX), vbWhite所畫線的起始點(diǎn)和結(jié)束點(diǎn)都是以像素為單位的,這樣以來如果不改變的話,畫出來的線將是一個屏幕上像素相連的很密的曲線,通過調(diào)整line(x1,y1)-(x2,y2)
中的x的值,就可以畫出分布密度不一樣的曲線,這里為了在屏幕上能夠看到不是很密的曲線我們把x乘以一個系數(shù)10,修改為:
picX.Line ((TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbWhite
這比較容易在屏幕上看到稀疏的曲線。
由于是僅僅講解如何畫出實(shí)時的曲線,讀者的計算機(jī)上未必有和串口相連的設(shè)備,這里用一個定時器控件來模擬從串口讀過來的數(shù)據(jù)。在窗體上放入一個Timer控件,修改Timer控件的屬性為:“Enable”該為True,“Interval”改為300。雙擊Timer控件在它的過程中,添加代碼后如下:
Private Sub Timer1_Timer()
DataFromComLast = DataFromCom
Randomize
DataFromCom = 3000 * Rnd
TimeCount = TimeCount + 1
DrawRealLine Pic, TimeCount, DataFromCom, DataFromComLast
End Sub
這樣在運(yùn)行后就可以看到我們想要的實(shí)時曲線了,如下圖:
圖 2
下面是完整的代碼:
Option Explicit
Dim DataFromCom As Integer '從串口讀過來的實(shí)時值
Dim DataFromComLast As Integer '上次的串口值
Dim TimeCount As Integer
Private Sub Form_Load()
PicScale Pic '調(diào)整圖像框的坐標(biāo)系
PicMidleLine Pic '在圖像框中畫一條中線
End Sub
Private Sub PicScale(picX As PictureBox) '調(diào)整圖像框的坐標(biāo)系
picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)
End Sub
Private Sub PicMidleLine(picX As PictureBox) '在圖像框中畫一條中線
picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen '畫出中線
End Sub
Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)
If TimeCountX - 1 > 0 Then
picX.Line ((TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbWhite
End If
End Sub
Private Sub Timer1_Timer()
DataFromComLast = DataFromCom
Randomize
DataFromCom = 3000 * Rnd
TimeCount = TimeCount + 1
DrawRealLine Pic, TimeCount, DataFromCom, DataFromComLast '畫出實(shí)時的曲線
End Sub
本文轉(zhuǎn)自紫蘋果電腦網(wǎng)(www.pczpg.com)原文地址:http://www.pczpg.com/a/2010/0914/19633.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
單片機(jī)與vb溫度測試程序
用VB實(shí)現(xiàn)實(shí)時曲線的繪制和保存--VB-程序設(shè)計-計算機(jī)學(xué)習(xí)網(wǎng)-育龍網(wǎng)
信息技術(shù)教研活動記錄
使用Iocomp工控圖表工具繪制實(shí)時曲線
vb中的image控件和picturebox控件有什么區(qū)別
在VB中如何讓背景圖片鋪滿整個MDIForm
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服