官术网_书友最值得收藏!

項目2 認識LabVIEW中的數據類型

LabVIEW數據大致被分為標量類(單元素)、結構類(包括一個以上的元素)兩大類。標量類有數值、字符和布爾量等,結構類有數組、簇和波形等。LabVIEW數據控件模板將各種類似的數據類型集中在一個子模板上以便于使用。

LabVIEW用顏色和連線來表示各類數據。表2-1給出了幾種常用的數據類型的端子圖標及其顏色,更多的類型將在后面介紹。連線是程序設計中較為復雜的問題,程序框圖上的每一個對象都帶有自己的連線端子,連線將構成對象之間的數據通道。因為這不是幾何意義上的連線,所以并非任意兩個端子間都可連線,連線類似于普通程序中的變量。數據單向流動,從源端口向一個或多個目的端口流動。不同的線型代表不同的數據類型。表2-2給出了幾種常用數據類型所對應的顏色和線型。

表2-1 幾種常用的數據類型的端子圖標及其顏色

表2-2 幾種常用數據類型所對應的顏色和線型

2.1 任務1 字符串型數據操作

2.1.1 認識控件與函數選板

在控件選板→新式中包含“字符串與路徑”子選板,如圖2-1所示。字符串(String)是LabVIEW中一種基本的數據類型;路徑是一種特殊的字符串,專門用于對文件路徑的處理。字符串型與路徑子選板中共有3種對象供用戶選擇,即字符串輸入/顯示、組合框和文件路徑輸入/顯示。

圖2-1 “字符串與路徑”子選板

在程序框圖的函數選板中,也有關于字符串的運算函數?!白址焙瘮底舆x板如圖2-2所示。

圖2-2 “字符串”函數子選板

路徑控件用于輸入或返回文件或目錄的地址。路徑控件與字符串控件的工作原理類似,但LabVIEW會根據用戶使用操作平臺的標準句法將路徑按一定格式處理。

組合框控件可用來創建一個字符串列表,在前面板上可按次序循環瀏覽該列表。在字符串控件中最常用的是字符串輸入和字符串顯示兩個控件。在默認情況下創建的字符串輸入與顯示控件是單行的,長度固定。

圖2-3所示是一個字符串輸入、一個字符串顯示的簡單的字符串操作。

圖2-3 簡單的字符串操作

2.1.2 字符串的顯示方式

字符串控件用于輸入和顯示各種字符串。用鼠標右鍵單擊字符串控件,在彈出的快捷菜單中,關于定義字符串的顯示方式有以下4種。

1)正常顯示。字符串控件在默認情況下為正常顯示狀態,顯示字符的一般形式,在字符串中可以直接輸入<Enter>或<空格>鍵,系統自動根據鍵盤動作為字符串創建隱藏的‘\’形式的轉義控制字符。

2)\代碼顯示。有些字符具有特殊含義或無法顯示,如<Enter>鍵等,可使用‘\’轉義代碼表示出來,如“\n”為換行符,該顯示方式適用于串口通信等。

3)密碼顯示。當制作登入窗口時,密碼行需要使用該顯示方式。

4)十六進制顯示。在一些設備交互數據或者讀寫文件時,需要使用十六進制的方式顯示其中的數據。

圖2-4所示是輸入圖示字符串后不同顯示方式的對比。

圖2-4 輸入圖示字符串后不同顯示方式的對比

2.1.3 日期時間的顯示

創建一個字符串顯示控件要求程序運行后顯示系統當前的日期和時間。

日期/時間字符串程序框圖如圖2-5所示。當時間格式字符串為空的時候,顯示的是系統當前的日期和時間,查看幫助信息可以獲得日期/時間的其他相關信息。

圖2-5 日期/時間字符串程序框圖

結合幫助信息,其他字符串函數將在后面用到時再進行介紹。

2.2 任務2 數值型數據操作

2.2.1 認識控件與函數選板

數值型(Numeric)是LabVIEW的一種基本的數據類型,可以是浮點數、整數、無符號整數和復數。新式的數值型控件包含了各種形象的輸入控件和顯示控件,如圖2-6所示。數值輸入控件快捷菜單如圖2-7所示。

圖2-6 新式的數值型控件

圖2-7 數值輸入控件快捷菜單

數值運算相關函數在數值子選板中,“數值”子選板如圖2-8所示。在函數選板的“編程”子選板和“數學”子選板中都可以找到。數值子選板包含了加減乘除等基本運算函數,還包含了一些常量。圖中的“數學與科學常量”中有Π、自然對數等。數值運算函數支持標量和數組的運算。

圖2-8 “數值”子選板

2.2.2 數值屬性

數值控件中的“數值輸入控件”比較常用,圖2-9所示是“數值輸入控件屬性”對話框。選擇其中的選項可對該控件進行一些操作和設置。“顯示項”包含標簽、標題、單位標簽、增量/減量幾個選項。默認勾選標簽為可見和“顯示增量/減量按鈕”,如圖所示控件上的“數值”就是它的標簽、空件右側的上下箭頭就是增量/減量,去掉勾選就不再顯示該部分。在圖2-7所示中選擇“查找接線端”就會切換到程序框圖的對應接線端子上;“數據操作”用來進行數據的復制粘貼等以及設置初始化默認值、當前值為默認值。選擇“屬性”可以打開屬性窗口,通過該窗口對數值外觀、數據類型、數據輸入和顯示格式等屬性進行設置,還可添加說明信息、進行數據綁定和設置快捷鍵等,如圖2-8所示。

圖2-9 “數值輸入控件屬性”對話框

2.2.3 數值表示法

在LabVIEW中的數值型的表示方法有多種,用鼠標右鍵單擊數值控件或接線端子,在彈出的快捷菜單里選擇“表示法”,可以看到數據類選項如圖2-10所示。默認的數值類型是雙精度浮點數(DBL),顏色為橙色。各類型數據的數據長度是不相同的。

圖2-10 數據類型選項

需要注意的是,在數值運算過程中應盡量做到數據類型保持一致,否則會有強制類型轉換點出現,強制轉換是將低精度的數值轉換為高精度數值再進行計算,運算中的強制類型轉換點如圖2-11所示。當中的“數值”為雙精度浮點數,而“數值2”為整數,在進行加法運算時,在數值2的接入端有一個紅點,即為強制轉換點。有強制類型轉換點,就有內存的重新分配,就會占用一定的資源,所以要盡量避免。

圖2-11 運算中的強制類型轉換點

2.2.4 用隨機數產出模擬溫度

運用數值函數產生一個20±5的隨機數,用該隨機數可以模擬某時刻室內溫度的變化情況。

分析:±5的隨機數可以考慮0-1隨機數乘以10,然后減去5來實現。隨機數產生的具體VI實現如圖2-12所示,多次單擊運行或者連續運行,會發現結果隨機數在指定范圍的變化,為了看清數據變化情況,可加一個等待函數(ms),等待1s。

圖2-12 隨機數產生的具體VI實現

2.2.5 比較函數

與數值運算相關的還有“比較函數”子選板,如圖2-13所示。比較函數選板可以進行數值比較、布爾值比較、字符串比較、數組比較和簇比較。不同數據類型的數據在進行比較時適用的規則不同。

圖2-13 “比較函數”子選板

2.2.6 溫度的比較與警示

綜合應用數值型數據、字符串和比較函數,接上面的任務,產生的溫度隨機數與21℃比較,當高于21℃時,文本顯示為溫度偏高,否則文本顯示為溫度正常。

兩種狀態的溫度比較編程實現如圖2-14所示。多次單擊運行或連續運行,可以查看溫度情況顯示欄的結果變化。

圖2-14 兩種狀態的溫度比較編程實現

可以進一步深入上述任務,考慮兩個閥值的比較情況:將溫度低于18℃記為低溫警報,高于21℃設置為高溫警報。

該問題實際上有3種情況,即高溫警報、低溫警報和正常,可以考慮用兩個選擇函數實現。3種狀態的溫度比較編程實現如圖2-15所示。多次單擊運行或連續運行,可以查看結果變化。

圖2-15 3種狀態的溫度比較編程實現

2.3 任務3 布爾型數據操作

2.3.1 認識控件與函數選板

布爾(Boolean)控件代表一個布爾值,也可認為是邏輯變量,取值只能是真(True)或假(False)。這兩個值分別用一個字節來表示,當該字節所有的數值為0的時候值為假,否則,值為真?!安紶枴毙涂丶x板如圖2-16所示,包括各種開關、按鈕和指示燈等?!安紶柡瘮怠边x板包含在函數選板中的布爾子選板中,如圖2-17所示,包含了與、或和非等常用函數。與數值運算類似,布爾量的算法也可以支持標量和數組的運算。

圖2-16 “布爾”型控件選板

圖2-17 “布爾函數”選板

2.3.2 機械動作

在布爾型輸入控件中一共有6種機械動作。機械動作的選擇在快捷菜單中,用鼠標右鍵單擊布爾控件選擇“機械動作”選項,如圖2-18所示。

圖2-18 “機械動作”選項

不同的機械動作模擬了不同種類的開關。第1行是轉換型的,如電燈的開關;第2行是觸發型的,松手后開關恢復原位。按列來看,第1列是按下后立刻執行動作;第2列是按下松手后才執行動作;第3列是按下執行動作,松手后又恢復原位。

2.3.3 簡單的布爾操作

簡單的布爾數據操作如圖2-19所示,比較布爾開關和布爾常量控制布爾燈的異同。

圖2-19 布爾數據操作

2.3.4 溫度報警程序設計

對應上述問題,如果溫度出現報警情況時,亮紅色警示燈,否則亮綠燈。

本問題涉及兩個情況,對應布爾燈的真和假,真的時候設置布爾燈顏色屬性為紅色,假的時候為綠色。高溫警報和低溫警報兩種情況用與函數連接,溫度報警的編程實現如圖2-20所示。多次單擊運行或連續運行,可以查看結果變化。

圖2-20 溫度報警的編程實現

2.4 任務4 數組和簇操作

2.4.1 認識控件與函數選板

數組控件在“數組、矩陣與簇”選板中,如圖2-21所示。數組(Array)由元素和維度組成。元素是組成數組的數據,維度是指數組的長度、深度。數組中存放的是相同的數據類型,可以是數值型,也可以是布爾型或字符型等,最常用的是數值型的數組??梢詣摻〝到M控件和數組常量。

圖2-21 “數組、矩陣與簇”選板

2.4.2 創建數組

在控件選板中選擇如數值、字符串和布爾量等控件,將其拖放到之前的數組外框中,得到一個一維數組。創建數組如圖2-22所示。圖2-22a所示是放置一個雙精度的由數值控件構成的一維數組。

圖2-22 創建數組

a)一維數組 b)二維數組 c)程序框圖中接線板的狀況

如圖2-22b所示,若需要創建的是二維數組只需要通過上下拖拉的方式,在左側索引部分即可得到所需維數的數組。圖2-22b所示得到的是一個二維數組,圖2-22b所示是程序框圖中接線板的狀況。

在程序框圖中,標量的連線是一條細線,一維數組是較粗的實心線,二維數組的連線是由兩根細線組成的,如圖2-22c所示。除了可以創建數值型數組,還可以創建字符串型和布爾型數組。

對于數組的相關運算,其實在查看其他數據類型的例程時應有所接觸。對數組可以進行加減乘除的運算,此外,還可以索引某個元素、索引某行/某列、測量數組維度,重新組成新數組等。圖2-23所示是“數組”的函數選板。

圖2-23 “數組”的函數選板

2.4.3 數組的大小和索引運算

圖2-24所示是一維數組函數的綜合運用,即創建數組、使用數組函數,并在創建的數組中進行數組大小運算和索引運算。

圖2-24 一維數組函數的綜合運用

對于二維數組常常涉及索引,索引從0開始,函數中索引端口的順序是先行后列,即先是行索引,后是列索引。如果行索引為空,只有列索引,那么索引的是對應的列,反之是行;如果既有行索引又有列索引,那么索引的將是對應的元素,圖2-25所示的例子能很好地說明這一點。另外,創建一維、二維數組可以用后面將要講到的for循環結構來實現。

圖2-25 二維數組的幾種索引方式比較

圖2-25所示為二維數組的幾種索引方式比較。

2.4.4 創建和使用簇

前面介紹的數組是同一類型數據的集合,若需要創建多種數據類型的集合,則需要使用LabVIEW中特有的數據類型——簇(Cluster),類似于C語言當中的結構體。

最常見的簇是LabVIEW中自帶的錯誤簇。錯誤簇中包含有布爾量、數值和字符串。在編程時使用錯誤簇,可以將所有子VI以及函數的錯誤簇按照數據流向的先后連接起來,這樣不僅可以將錯誤傳遞下去,而且方便找到對應的錯誤源,還可以控制程序的執行順序。

雖然簇可以包含多種數據類型(比如,在簇中可以包含另一個簇),但是在同一個簇中只能包含輸入控件或者顯示控件,不可能同時包含輸入/顯示控件。簇的創建與數組類似,即將簇的外框拖放到前面板上。簇的創建方式如圖2-26所示。

圖2-26 簇的創建方式

在簇中添加所需的元素,可創建一個新的簇。在程序框圖中的接線端如圖2-26d所示。如果需要簇的外框大小和其包含的元素大小相匹配,在簇控件上用鼠標右鍵單擊,選擇“自適應大小”(size to fit)就可以得到調整后的簇的外貌,并且會根據新修改的元素分布自動修改其外框大小。

“簇的函數”選板如圖2-27所示,最常用的4個選項是按名稱捆綁、捆綁、按名稱解除捆綁和解除捆綁。

圖2-27 “簇的函數”選板

當有大量的數據需要傳遞的時候,若數據類型一致,則推薦使用數組將數據整合在一起;若數據類型有多種,則推薦使用簇將各種數據捆綁在一起,然后再進行傳遞。

2.4.5 簇的編號與排序

在創建一個簇時,LabVIEW會按照簇中元素創建的先后次序給簇中的元素進行默認編號。編號從0開始,依次為1、2、…。當然,也可根據編程需要自己定義元素的編號。在簇框架用鼠標右鍵單擊彈出的選單中,選擇重新排序簇中的控件,如圖2-28所示,Lab-VIEW的前面板會變為元素順序編輯器,在編輯器中用鼠標單擊元素的編號,即可改變元素的編號,其余編號依次輪回。在編輯完所有編號后,用鼠標單擊工具條上的“OK”按鈕確定。

圖2-28 簇中控件的排序

2.5 任務5 圖形數據操作

強大的數據圖形化顯示功能是LabVIEW最大的優點之一。利用圖形與圖表等形式來顯示測試數據和分析結果可以直觀地看出被測試對象的變化趨勢,從而使虛擬儀器的前面板變得更加形象和直觀。LabVIEW提供了豐富的圖形顯示控件。編程人員通過使用簡單的屬性設置和編程技巧就可以根據需求定制不同功能的“顯示屏幕”。

2.5.1 生成波形數據

波形是一種特殊類型的簇,元素的數量和類型固定,包括數據采集的起始時間t0、時間間隔dt、波形數據y和屬性。波形數據在“函數”→“信號處理”→“波形生成”選板,如圖2-29所示。該選板上的函數較多,使用基本相似。主要介紹正弦波形、基本函數發生器和仿真信號。

圖2-29 “波形生成”選板

1.正弦波形

正弦波形生成VI用來生成正弦波信號,有多個輸入端,可以進行正弦波的幅值、頻率和相位等設置,如圖2-30所示,其中的輸入端子依次如下。

圖2-30 正弦波形生成VI

偏移量:波形信號的直流偏移量,默認值為0.0。

重置信號:值為TRUE時,相位可重置為相位控件的值,時間標識可重置為0,默認值為FALSE。

頻率:波形的頻率,單位為赫茲,默認值為10。

幅值:波形的幅值,默認值為1.0。

相位:波形的初始相位,以度為單位,默認值為0。如重置信號為FALSE,則VI忽略相位。

錯誤輸入:表明節點運行前發生的錯誤。該輸入將提供標準錯誤輸入功能。

采樣信息:包括Fs(每秒采樣率,默認值為1000),#s(波形的采樣數,默認值為1000)。

信號輸出:生成的正弦波信號。

錯誤輸出:包含錯誤信息,該輸出將提供標準錯誤輸出功能。

2.基本函數發生器

基本函數發生器如圖2-31所示,該函數能夠根據信號類型創建輸出波形。信號類型選項有:Sine Wave(正弦波)、Triangle Wave(三角波)、Square Wave(方波)和Sawtooth Wave(鋸齒波)。該函數還可以進行幅值、頻率、相位、偏移量以及采樣信息等的設置。

圖2-31 基本函數發生器

3.仿真信號

仿真信號是一個Express VI,該VI能仿真正弦波、方波、三角波、鋸齒波和噪聲等信號。圖標如圖2-32所示。信號類型的選擇及一些信息的配置,在交互式對話框中進行。放置該VI或者在放置好的節點上雙擊鼠標左鍵,彈出對話框如圖2-33所示。在該對話框中,最上面是信號類型復選框,可以在此選擇信號類型類(比如選擇正選信號),下面就要對這個信號進行頻率、幅值、相位和偏移量等的設置,如果是方波信號還可以設置占空比。對該信號還可以加入噪聲,噪聲類型也有多個選項,詳細描述參見幫助文件。

圖2-32 仿真信號

圖2-33 “配置仿真信號”對話框

2.5.2 分析處理波形數據

波形分析處理相關函數位于“函數”→“編程”→“波形”選板,如圖2-34所示。其中包含了分解波形數據、組成波形數據的函數以及波形分析和波形文件保存等。

圖2-34 “波形”選板

在“信號處理”選板中,除了波形生成外,還有一些與波形分析處理有關的函數,如圖2-35所示。圖中的每個選項展開后都包含了多個函數,這些函數以后用到再詳細介紹,這里簡單介紹一下“信號生成”選板。

圖2-35 “信號處理”選板

在圖2-35中的“信號處理”選板中,各個函數的功能與“波形生成”的功能相似,生成的信號類型也類似。它們的主要區別是“波形生成”模板包含了信號的時間信息,波形是時間的函數;而“信號生成”模板則不包括?!安ㄐ紊伞蹦0逯懈髂K參數設置更為靈活,功能更強大,其中的許多模塊是在“信號生成”模板的基礎上進一步開發的。

2.5.3 顯示波形數據

波形(Waveform)控件在“圖形”控件子選板中,如圖2-36所示。其中3個常用的波形控件有波形圖表、波形圖、XY圖和Express XY圖。波形圖表主要用來顯示波形數據,如最常見的正弦波、方波等。所有從外部硬件采集到的數據都可以用波形圖表來顯示。在波形中顯示的數據有數組、標量和波形數據等。

圖2-36 “圖形”控件子選板

1.波形圖表

波形圖表是一個圖形控件,使用波形圖表可以將新獲取的數據添加到原圖形中去,波形圖表的坐標可以是線性或是對數分布的,其橫坐標表示數據序號,縱坐標表示數據值。在波形圖表控件的鼠標右鍵快捷菜單中,有著豐富的內容,其中顯示項中包含圖表標簽、標尺和輔助組件等。

在一個波形圖表中可以顯示多條曲線。對于二維數組,在波形圖表中默認情況下它將輸入數組轉置,即把生成數組的每一列數據當作一條一維數組來生成曲線。圖2-37a所示的2行6列數組默認為2個點的6條曲線;數組轉置后,變成6個點的2條曲線。對應程序框圖如圖2-37b所示。曲線上加點的方法是:用鼠標右鍵單擊波形圖標,選擇“屬性”,在打開的屬性對話框上選擇“曲線”,打開圖2-38所示的界面??梢詫η€0、曲線1……進行加點、填充和修改顏色等屬性設置。

圖2-37 波形圖表

a)波形圖表前面板 b)波形圖表程序框圖

圖2-38 曲線屬性設置

波形圖標的曲線可以進行分格顯示,如圖2-39所示。把右上角的“圖例”拖拽,出現“曲線0”“曲線1”。在曲線顯示區用鼠標右鍵單擊,選擇“分格顯示”,2條曲線就分別顯示在兩個窗口中。把圖例每個曲線波形的Y標尺幅度可以單獨進行設置,使不同大小的曲線都能清晰地在波形圖表中顯示。

圖2-39 波形圖表分格顯示

如果要在一個波形圖表繪制多條曲線,需要用捆綁函數將兩個數據捆綁成一個簇,然后連接到波形圖表中。

2.波形圖

盡管波形圖和波形圖表在外觀及很多附件功能上相似,但對比波形圖表,波形圖不能輸入標量數據,也不具備數字顯示和歷史數據查看功能;輸入二維數組時,默認為輸入數組不轉置。

波形圖在顯示時先清空歷史數據,然后將傳遞給它的數據一次繪制成曲線顯示出來。在自動刻度下,它的橫坐標初始值恒為0,終值等于數據量;在固定刻度下,橫坐標在程序運行時保持固定,用戶可以根據要求設置橫坐標的初始值和終值。波形圖表在已有采集數據的基礎上不斷更新顯示新的輸入數據,適用于實時檢測數據波形。而波形圖屬于事后記錄波形數據的圖表,適用于事后數據的分析。此外,波形圖控件的游標圖例功能可以在波形記錄后方便地查詢曲線上任意曲線點的坐標值或采樣點值。和波形圖表一樣,波形圖的輸入數據可以是一維數組、二維數組和波形數據。不同的是波形圖不能輸入標量數據,但可以輸入由3個元素組成的簇數組。

1)程序框圖如圖2-40a所示,當輸入數據為一維數組時,波形圖直接根據輸入的一維數組數據繪制一條曲線,圖2-40b所示的波形圖顯示。還可以為波形圖的橫坐標添加時間,方法是在波形圖上用鼠標右鍵單擊,在彈出的快捷菜單上選擇“屬性”,打開屬性對話框,選擇“顯示格式”選項,如圖2-40c所示,圖中的時間(X軸)類型中選擇“絕對時間”,時間格式選擇“24小時制”,日期格式選擇“系統日期格式”。

圖2-40 波形圖顯示

a)程序框圖 b)前面板 c)X軸日期時間設置

送入波形圖2中的數據是“簇”,它包含了t0=10;Δt=2,以及y(一維數組)的信息。把這3個信息按照順序捆綁起來即可,波形顯示圖2-40b所示的波形圖2。比較兩個波形圖的顯示,各點的取值y相同,計時起點和步長不同。

2)把“基本函數發生器”生成的波形數據用波形圖顯示,程序如圖2-41所示。圖2-41a為程序框圖,在基本函數發生器的信號類型、頻率、幅值、相位、采樣信息和占空比等端子上用鼠標右鍵單擊,創建輸入控件,前面板就會放置相應的輸入控件,如圖2-41b所示。在前面板的信號類型控件上單擊鼠標,選擇Triangle Wave(三角波),頻率默認10.0Hz,修改為2Hz,其他選項不變。運行程序,顯示效果見圖2-41b。選擇不同類型信號或修改頻率、相位和幅值等信息,波形顯示會相應變化;選擇Square Wave(方波時)還可以修改占空比。

圖2-41 波形圖顯示基本函數波形

a)顯示基本函數波形程序框圖 b)顯示基本函數波形前面板

3.XY圖

在顯示均勻波形數據時通常使用波形圖,其橫軸默認為采樣點序號,Y軸默認為測量數值,這是一種理想情況。但在大多數情況下,繪制非均勻采樣數據或封閉曲線圖時無法使用波形圖。因此,當數據以不規則的時間間隔出現或當要根據兩個相互依賴的變量(如Y/X)時,就需要使用XY圖,即笛卡兒圖。它可以繪制多值函數曲線,如圓、雙曲線等。XY圖也是波形圖的一種,它需要同時輸入X軸和Y軸的數據,X、Y之間相互聯系,不要求X坐標等間距,且通過編程能方便地繪制任意曲線。與波形圖類似,XY圖也是一次性完成波形的顯示刷新。

當X數組、Y數組的長度不一致時,在XY圖中將以長度較短的數據組為參考,而長度較長的數據組多出來的數據將在圖中無法顯示。在使用XY圖來繪制曲線時,需要注意數據類型的轉換。

例如,要畫一個心形圖案,給出X數據和Y數據,分別是20個元素的一維數組,把兩一維數組捆綁后,送XY圖顯示,如圖2-42所示。設置顯示曲線寬度,并加點,可以看到,圖中用20個點繪制了一條心形曲線。

圖2-42 用XY圖顯示心形曲線

a)程序框圖 b)XY圖顯示

2.5.4 圖形數據操作

1.讀取顯示二維圖片

二維圖片控件位置在“控件”→“圖形”→“控件”,如圖2-43所示。與二維圖片相關的函數位于“編程”→“圖形與聲音”選板,如圖2-44所示。其中的“圖片函數”和“圖形格式”中,包含了大量與圖片相關函數。下面用一個例子來說明這些函數的使用方法。

圖2-43 “圖形”控件選板

圖2-44 “圖形與聲音”函數選板

1)事先做好一個BMP格式的圖片,可以命名為“二維圖片.BMP”。在前面板放置一個二維圖片控件,并拖拽,再放置一個“文件路徑輸入控件”(位置在“控件”→“新式”→“字符串與路徑”),并修改為“BMP文件路徑”。在程序框圖窗口編寫程序如圖2-45a所示。圖中的“讀取BMP文件”在“圖形格式”選板中;“繪制平化像素圖”在“圖片函數”選板中。

圖2-45 二維圖片顯示

a)程序框圖 b)前面板

2)在“二維圖片”上用鼠標右鍵單擊,彈出的快捷菜單中選擇“創建”→“屬性節點”→“可見”,用來創建一個可見屬性節點。在該屬性節點上用鼠標右鍵單擊,在快捷菜單上選擇“全部轉為寫入”。在前面板上放置一個“水平搖桿開關”,把開關連接到屬性節點的“Visible”輸入端(見圖2-45a)。前面板如圖2-45b所示,找到“二維圖片.BMP”所在位置,把路徑填寫到路徑控件中。單擊連續運行按鈕,運行程序。運行時,開關撥向左側,圖片不可見,撥到右側,圖片可見。

2.繪制三維圖

“三維圖片”控件在“控件”→“新式”→“圖形”選板。三維圖片相關函數位于“函數”→“圖形與聲音”→“三維圖片控件”,如圖2-46所示。圖中的“幾何”選板中函數用于繪制基本形狀,如錐面、柱面、長方體和網格等;“對象”選板中函數集包含了創建、查找對象兩個函數。對于一個三維場景來說,對象是一個最基本的元素。一個三維場景中可以有一個或多個對象;在一個對象中,也可以放置一些基本的形狀,也能導入三維建模文件中的模型,也能插入更多的子對象。對三維圖片控件的編程,實質就是對對象的編程?!白冃巍笨刂迫S場景中對象變形的函數。如控制或獲取某對象的旋轉、縮放和平移等,此函選板有9個函數?!爸帧笔怯脩粼O置三維場景時的常見操作,如設置光源、設置某對象的表面圖像等?!凹虞d文件”用于在三維場景中加載來自于第三方文件的幾何模型,有加載ASE幾何、加載STL幾何和加載VRML文件。

圖2-46 三維圖片相關函數

下面來繪制一個圓錐三維圖,并且讓該圖按照要求旋轉。步驟如下:

1)在“幾何”中選擇“創建錐面”,放置在程序框圖窗口,并在該函數的每個輸入端上創建輸入控件,如圖2-47a所示。

圖2-47 三維圖繪制程序

a)程序框圖 b)設置調用節點 c)前面板 d)視角控制器設置

2)在“對象”中選擇“創建對象”,放置在程序框圖窗口,在“名稱”端子上創建常量,命名為“圓錐”。

3)放置一個調用節點,位置在函數選板上“編程”→“應用程序控制”→“調用節點”,該節點的“引用”端子連接到“創建對象”的“場景:新對象”端子上,該節點如圖2-47b所示。在節點的“方法”上單擊鼠標左鍵,彈出的快捷菜單上選擇“設置可繪制對象”?!皠摻ㄥF面”函數的“新錐形引用句柄”作為調用節點“Dravable(可繪制對象)”端的輸入信號。此時,在前面板放置一個“三維圖片”控件就可以顯示該三維圖了。

4)在“三維圖片”上用鼠標右鍵單擊,創建屬性節點,選擇“背景色”,并在該節點的背景色輸入端創建一個輸入控件,就可以對背景進行顏色設置了。

5)前面板如圖2-47c所示?!邦伾笨丶惺侨t、綠、藍以及Alpha(用于指定RGB顏色的不透明度),用來設置三維圖的顏色,取值在0~1之間;“背景色”控件用來設置背景的顏色?!案叨取笨丶脕碓O定圓錐對象垂直軸的長度、“半徑”控件用來設定對象的半徑、“詳細”控件用來設置繪制對象時至高點的數量。詳細值越高,幾何對象的近似度就越大,取值在0~1之間,默認值為1。

在前面板的“三維圖片”控件上用鼠標右鍵單擊,“視角控制器”選項中,“球面”和“自動重繪”選項前面打勾。可以實現運行時,用鼠標拖動三維圖形,來按照固定點旋轉,見圖2-47d。

6)如果希望該三維圖形旋轉起來,就需要一個While循環,把“三維圖片”至于循環體內,用函數“旋轉對象”來實現旋轉功能,在該函數的兩個輸入端創建輸入控件,用來設置旋轉軸和旋轉角度。把該函數的“場景.對象輸出”引用端子連接到“三維圖片”的輸入端,即完成程序設計。

2.6 思考題

1.用0~100的隨機數代替攝氏溫度,將每500ms采集的溫度變化波形表示出來,并設定上限為85,下限為45,溫度高于上限或者低于下限分別點亮對應的指示燈,并將其上、下限也一并在波形中表示出來。

2.生成一個0~100的隨機整數,與60比較,大于等于60記為通過,綠燈亮;小于60記為不及格,紅燈亮;將比較結果捆綁后放在一個簇里顯示。

主站蜘蛛池模板: 万载县| 丹凤县| 土默特右旗| 青冈县| 赣榆县| 延川县| 牙克石市| 邵阳市| 东乌珠穆沁旗| 额济纳旗| 凤山县| 宜君县| 和静县| 丰宁| 陵川县| 成武县| 奉新县| 天门市| 平湖市| 乳源| 兴海县| 武宣县| 屯门区| 鹤壁市| 诏安县| 洪雅县| 凌源市| 清徐县| 龙山县| 雷山县| 介休市| 新密市| 赤峰市| 安国市| 东海县| 娱乐| 天峨县| 广饶县| 阳谷县| 谢通门县| 武强县|