国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用VB實現實時曲線的繪制和保存

2019-11-18 17:41:35
字體:
來源:轉載
供稿:網友
在VB中繪制實時曲線是比較難的,一般要應用第三方控件或是WindowsAPI函數來完成,但是如果你對實時曲線的要求不是很高,只要能表示出當前的一般情況的話,我們可以直接應用VB提供給我們的空間來完成。

  原則上講,直接在Form里繪制曲線都是可以的,MSDN上面很多例程就是直接在Form里面繪制圖形的,Form作為繪制圖形的容器,不過一般應用中Form中不可避免的會有很多其他控件,所以我們選擇PictureBox作為繪制曲線的容器。

  實時曲線的繪制一般借助于Timer控件來完成,使用Timer控件,定期將串口或是其他儀器中監測到的數據送往PictureBox1,而曲線的繪制一般畫成折線圖,采用PictureBox1的Line方法繪制.具體實現如下:

  1.選擇需要顯示的窗體Picture1,加入圖片框Picture1,根據實際需要設置圖片的大小并移到合適的位置,并在圖片的外面畫好量程----時間坐標系;然后加上Timer控件以及兩個CommandButton,界面就基本設置好了。

  2.建立坐標系,根據Picture1的大小和高度設置畫出坐標系的X軸和Y軸:

->Picture1.ScaleMode=1‘以VB的基本單位作為建立坐標軸以及繪制圖形的單位;
Picture1.Refresh
Picture1.CurrentX=Picture1.ScaleLeft 100
Picture1.CurrentY=Picture1.ScaleTop
Picture1.PRintPicture1.ScaleHeight-100
Picture1.Line(Picture1.ScaleLeft 100,Picture1.ScaleTop 100)-(Picture1.ScaleLeft 100,Picture1.ScaleHeight-100)
Picture1.CurrentX=Picture1.ScaleLeft 100
Picture1.CurrentY=Picture1.ScaleHeight
Picture1.Print“(0,0)”
Picture1.Line(Picture1.ScaleLeft 100,Picture1.ScaleHeight-100)-(Picture1.ScaleWidth-100,Picture1.ScaleHeight-100)
Picture1.CurrentX=Picture1.ScaleWidth
Picture1.CurrentY=Picture1.ScaleHeight
Picture1.PrintPicture1.ScaleWidth-100
Picture1.AutoRedraw=True‘必要時,用存儲在內存中的圖象進行重繪->

  3.繪制曲線并保存,我們這里以正弦曲線作為繪制曲線的數據來源,具體應用是可以采用由串口或其他儀器采集得到的數據.首先我們繪制一條中線,然后在Timer控件的Time事件中繪制曲線:

->Picture1.Line(Picture1.ScaleLeft,CInt(Picture1.ScaleHeight/2))-(Picture1.ScaleWidth,CInt(Picture1.ScaleHeight/2))‘繪制中線
PrivateSubTimer1_Timer()
 Dimy1AsInteger
 y1=CInt(Sin((x-Picture1.Left)/20/180*pi)*Picture1.ScaleHeight/2)
 y1=CInt((Picture1.ScaleHeight 1000)/2)-y1
 Picture1.Line(x,y)-(x 20,y1)
 x=x 20
 y=y1
 Ifx>=Picture1.ScaleWidthThen
  SavePicturePicture1.Image,"c:/sin.bmp"‘保存圖畫,可以根據實際需要命名圖片
  x=0
  y=Picture1.ScaleHeight/2
  Picture1.Cls‘清屏重畫
 EndIf
EndSub->

  從上面的過程可以看出,其實對于要求不高的實時曲線的繪制還是比較簡單的,在這里我采用的是清屏重畫圖像,如果要實現圖像往左移動,圖像仍然保留的效果,可以采用Windows的Bitblt函數,可以讓圖像每次移動一個象素或是多少個twip

  以上只是實時曲線繪制的一點簡單說明,具體應用中可能需要花更多的功夫修飾圖像,顯示時間(可以依據上面的代碼中的Picture1.Print實現),但是基本原理大同小異。
->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄陵县| 山阴县| 宣武区| 吴桥县| 兴山县| 吉林市| 宝兴县| 淳安县| 阿坝县| 潼关县| 泾源县| 泊头市| 探索| 天祝| 朝阳县| 文成县| 镇坪县| 屯昌县| 卢氏县| 桂东县| 嘉兴市| 富平县| 崇州市| 龙江县| 兴仁县| 翼城县| 沙坪坝区| 和林格尔县| 清流县| 华蓥市| 大余县| 灵川县| 米脂县| 伊吾县| 峨眉山市| 项城市| 墨江| 茶陵县| 秦皇岛市| 疏附县| 安化县|