• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VB.NET 語言的雙縱軸多曲線平面曲線控件

      2014-12-06 06:30:12鄭國勛張曉賢王若金
      關(guān)鍵詞:坐標(biāo)軸控件刻度

      鄭國勛,張 華,張曉賢,趙 亮,王若金

      (1.長春工程學(xué)院計(jì)算機(jī)技術(shù)與工程學(xué)院;2.吉林省招生委員會(huì)辦公室;3.吉林省交通職業(yè)技術(shù)學(xué)院,長春130012)

      0 引言

      實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)曲線的繪制與顯示,是各種測控系統(tǒng)的重要功能。實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)曲線能夠?qū)崟r(shí)、直觀地反應(yīng)數(shù)據(jù)的變化趨勢。但是,很多開發(fā)語言都沒有提供數(shù)據(jù)曲線工具,而提供數(shù)據(jù)曲線繪制功能的軟件(如:Matlab)又難于實(shí)現(xiàn)軟件集成化。因此,開發(fā)具有實(shí)時(shí)動(dòng)態(tài)曲線功能的軟件,通常會(huì)使用第三方控件。在第三方繪制曲線控件中比較常用的是微軟的Graph OLE組件,它的功能完善,易于操作使用,但使用它需要付費(fèi)購買Microsoft Office辦公軟件,且在處理大數(shù)據(jù)時(shí)性能不佳。相關(guān)實(shí)驗(yàn)表明,當(dāng)數(shù)據(jù)量達(dá)到50 000條時(shí),Graph OLE組件加載、刷新一次曲線大約需要1min,這樣的刷新速率對實(shí)時(shí)性要求較高的測控軟件是不適用的。

      本文在Microsoft Visual Studio平臺(tái)上,使用VB.NET語言,采用面向?qū)ο蠓椒ㄔO(shè)計(jì)一個(gè)動(dòng)態(tài)曲線控件,把動(dòng)態(tài)曲線的繪制封裝在一個(gè)用戶自定義控件類中,通過可視化界面配置相關(guān)屬性,簡化了圖形坐標(biāo)系統(tǒng)的繪制和標(biāo)識(shí),同時(shí)提高了代碼的可重用性,便于在各種系統(tǒng)中使用。

      1 曲線控件的整體設(shè)計(jì)思路

      實(shí)時(shí)動(dòng)態(tài)曲線繪制與靜態(tài)圖形繪制不同點(diǎn)主要在于繪制動(dòng)態(tài)曲線的數(shù)據(jù)是逐步得到的,在繪制過程中必須保證實(shí)時(shí)性,即獲取數(shù)據(jù)與繪制曲線必須是同步的。因此,在軟件的設(shè)計(jì)過程中,必須注意繪制圖形的效率,滿足實(shí)時(shí)監(jiān)測的需要。

      實(shí)時(shí)動(dòng)態(tài)曲線的繪制一般要考慮到實(shí)時(shí)數(shù)據(jù)值的范圍和數(shù)據(jù)的采樣頻率。實(shí)時(shí)動(dòng)態(tài)曲線一般的形式是Y方向軸表示監(jiān)測數(shù)據(jù)的大小,X方向軸表示時(shí)間。隨著時(shí)間的變化,動(dòng)態(tài)曲線不斷更新變化。常用的實(shí)現(xiàn)曲線顯示方法有2種:一種是把已繪制的圖形擦除,重新從左向右繪制;另一種方式稱為平推式,把已有圖形向左方或右方平移。在平推式中,最需要解決的問題是圖形刷新的問題,以免在采樣頻率較高的情況下圖形閃爍嚴(yán)重。

      本文采用的方法是:利用VB.NET的Bitmap對象在內(nèi)存中進(jìn)行坐標(biāo)軸及曲線的繪制,Picture-Box控件作為曲線的顯示載體,將Bitmap對象賦值給PictureBox控件。通過這種方法,可以避免曲線直接繪制在PictureBox控件上而將產(chǎn)生的閃爍問題以及窗體被置于下層時(shí)曲線被擦除的問題。

      2 編制曲線控件的方法

      2.1 坐標(biāo)系的建立

      Microsoft Visual Studio平臺(tái)中默認(rèn)坐標(biāo)系統(tǒng)是容器的左上角坐標(biāo)為(0,0),Y 方向軸向右,X方向軸向下,容器右下角坐標(biāo)為(Width,Height)(注:Width為容器寬度,Height為容器高度)。因此,在繪制曲線前必須自定義絕對坐標(biāo)系,自定義絕對坐標(biāo)系規(guī)則如下:

      1)Y方向軸的最大值和最小值由曲線數(shù)據(jù)確定,分別記作u、l;

      2)Y方向軸刻度由曲線數(shù)據(jù)的最大值、最小值及它們之間的差值確定,分別記作Dmax、Dmin、t=Dmax-Dmin。當(dāng)t=0時(shí)曲線是一條平行于X方向軸的線段;

      3)Y方向軸單位長度記作s,刻度數(shù)記作m;

      4)定義函數(shù)f(x)為小于x的最大整數(shù),c(x)為大于x的最小整數(shù)。

      通過計(jì)算可以得到:

      為了提高復(fù)用性,文中把實(shí)動(dòng)態(tài)時(shí)曲線的繪制封裝成一個(gè)自定義控件類,用類的方法分別實(shí)現(xiàn)坐標(biāo)繪制、動(dòng)態(tài)曲線繪制等操作。自定義控件類的屬性見表1。

      表1 自定義控件類的屬性

      2.2 曲線的繪制

      按上述規(guī)則建立了自定義坐標(biāo)系后,就可以進(jìn)行數(shù)據(jù)曲線的繪制了。坐標(biāo)系是否顯示右側(cè)Y軸由控件的EnableRightYAxis屬性決定。多條數(shù)據(jù)曲線由傳入數(shù)據(jù)的二維數(shù)據(jù)決定。曲線控件繪制曲線的具體步驟如下:

      1)通過LastLeftDataArray屬性獲取曲線數(shù)據(jù);

      2)利用傳入的數(shù)據(jù)和公式(1)~(3)計(jì)算求得坐標(biāo)軸刻度的單位長度、最小刻度值、最大刻度值及刻度數(shù);

      3)繪制坐標(biāo)軸、刻度線、更新坐標(biāo)系文本;

      4)利用坐標(biāo)軸相關(guān)參數(shù)將曲線數(shù)據(jù)真實(shí)值換算為Microsoft Visual Studio平臺(tái)中默認(rèn)坐標(biāo)系統(tǒng)的坐標(biāo)值;

      5)在Bitmap對象中繪制曲線,并將Bitmap對象賦值給PictureBox控件。

      3 運(yùn)行界面

      該自定義曲線控件通常要與開發(fā)工具的時(shí)間控件配合使用,以實(shí)現(xiàn)實(shí)時(shí)曲線功能。在Microsoft Visual Studio平臺(tái)上可以通過使用BeginInvoke方法實(shí)現(xiàn)多線程對曲線控件的調(diào)用。使用多線程技術(shù)調(diào)用曲線控件,可以有效地避免程序在運(yùn)行過程中窗體出現(xiàn)假死情況,程序運(yùn)行后如圖1所示。

      圖1 曲線控件運(yùn)行后畫面

      4 結(jié)語

      本文介紹了確定坐標(biāo)系、坐標(biāo)軸刻度和繪制平面曲線的方法,使用VB.NET語言編寫了平面雙縱軸曲線控件。該控件計(jì)算坐標(biāo)軸刻度的方法計(jì)算效率高,繪制的刻度線、刻度分布更為合理。實(shí)現(xiàn)了雙縱軸顯示曲線,并且可以顯示不同顏色的多條數(shù)據(jù)曲線,具有很好的通用性。

      [1]許強(qiáng).工業(yè)實(shí)時(shí)曲線實(shí)現(xiàn)的方法及其比較[J].中國科技信息,2010(17):103-104.

      [2]王林,劉子英,蔣仕林.基于Ajax技術(shù)的遠(yuǎn)動(dòng)系統(tǒng)實(shí)時(shí)曲線研究[J].華東交通大學(xué)學(xué)報(bào),2008(1):77-79.

      [3]翟世磊,李明波,李福,等.實(shí)時(shí)曲線的繪制方法探索[J].科技信息,2009(36):521-522.

      猜你喜歡
      坐標(biāo)軸控件刻度
      用坐標(biāo)軸平移妙解斜率和(或積)為定值問題
      歐姆表的刻度真的不均勻嗎?
      ——一個(gè)解釋歐姆表刻度不均勻的好方法
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      被吃掉刻度的尺子
      誰大誰小
      巧用仿射變換妙解高考解析幾何題
      測量三字歌
      就這樣玩會(huì)VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      坐標(biāo)軸平移中配方的技巧
      新一代(2011年2期)2011-06-17 09:29:50
      數(shù)學(xué)問答
      平原县| 宁陕县| 安岳县| 新干县| 滨海县| 巴青县| 镶黄旗| 蓝山县| 镇雄县| 唐海县| 芦溪县| 五指山市| 广平县| 疏附县| 临桂县| 呈贡县| 顺平县| 永康市| 武城县| 柘城县| 四川省| 三亚市| 隆尧县| 博客| 科尔| 康定县| 沙河市| 江门市| 巴东县| 博兴县| 镇巴县| 耒阳市| 东阳市| 东阿县| 兴文县| 石城县| 神池县| 礼泉县| 鲁山县| 顺平县| 朝阳区|