發布日期:2022-04-17 點擊率:108
引 言
對于各種各樣應用日益廣泛的嵌入式系統而言,除了應用功能強大外,人機界面的美觀也是吸引用戶的重要方面。因此,越來越多的嵌入式系統開發人員希望:LCD上除了顯示圖案固定的菜單以外,再添加適量的動畫,使得整個界面屏幕更加活潑可人。用于動畫設計的程序設計語言有多種,并且有多種方法,根據是否需要借助于其他應用軟件和程序,可以將這些方法分成兩大類:第一類是只使用各種編程語言及開發環境中包含的文件和框架實現的設計方法;第二類則是安裝相關軟件(諸如Flash、Di-rectDraw等),在相關語言的開發環境中將這些軟件的功能文件包含進去,來共同實現動畫設計的方法。而嵌入式系統由于其極強的專用性、實時性要求,傳統采用的開發語言并不是很多,雖然動畫界面在嵌入式系統應用中并非高優先級的程序,但開發人員在選取其設計方法時,也應該辨明利弊,靈活使用,這樣才能看到更加賞心悅目的界面,而不是被LCD上凌亂不堪的顯示內容所困擾。
1 不需安裝第三方軟件的動畫設計方法分析
(1)Logo適用于簡易的嵌入式設備的動畫設計
Logo語言的設計方法最為簡單。它內置一套(Turtle Graphics)系統,其本身就是一種繪畫語言,理論上可以加載到嵌入式系統中作動畫開發;然而,因為一個嵌入式系統會有很多別的軟件設計部分,其他功能都采用Logo顯然并不合適,而要在一個嵌入式系統中安裝兩種開發環境更加不現實。所以,若在嵌入式系統開發中選用這種方法制作動畫,應該只適合用于兒童用的復雜程度同等的簡易的嵌入式設備。
(2)最適合嵌入式系統使用的擦除法
C語言是嵌入式系統開發使用最多的語言,并且高中低檔的系統都可以用,因而采用C語言的所有動畫設計方法,理論上均適用于嵌入式系統的屏幕動畫開發。然而,諸如利用動態開辟圖視口方法、利用顯示頁和編輯頁交替變化、利用畫面存儲再重放的方法,以及直接對圖像動態存儲器進行操作的方法等程序比較復雜,且要對圖像不斷進行存取操作,這需要耗費大量內存資源;而擦除法動畫設計則可以解決上述問題。其設計原理是:利用同色原理,當圖形色與背景色相同時人眼不能感知。在動畫設計中,當在一個位置畫了一張圖像時,使圖像色與背景色相異,然后再到另一個位置畫一張圖像并使圖像色與背景色也相異,此時將先畫的圖像在原位置再畫一張,并使圖像色與背景色相同,這樣人眼只能看到新畫的一張圖像而看不到先前畫的圖像,從而先前畫的圖像感覺被擦除了。
這樣連續畫多張圖像并在每畫一張新的圖像時將原來的圖像擦除,從而在觀察者看來就實現了動畫的效果。綜上所述,從耗費資源較少且執行速度較快的角度出發,筆者認為,采用C語言設計動畫的常用方法中,最適合嵌入式系統使用的是首選擦除法。
(3)CBuilder語言本身不太適合嵌入式開發
采用CBuilder語言設計動畫,可以方便地利用現成的組件產生圖像及控制時間,從而解決了動畫設計中兩個非常重要的問題。然而CBuilder語言本身不太適合嵌入式開發,因為嵌入式開發對空間、效率都要求較高,而CB是針對高層的應用程序開發的工具。但是,有兩點值得注意:首先,現在很多公司做嵌入式開發多是自己搞一套系統,使其適合使用CB完全可以做到;另外,Borland公司正在開發嵌入式的C++,可以期待。
(4)Java語言非常適合嵌入式系統的屏幕動畫設計Java語言是嵌入式系統開發經常采用的語言,在手機中更是應用良多。Java語言的動畫設計方法通過定義線程的方法來控制動畫時間;而使圖像動的平滑的雙緩沖方法需要很大內存,因而更常用的消除畫面閃爍的辦法是重載upGlate()。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV