亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM的畫圖工具的設計與開發(fā)

        2012-07-05 08:37:40洪運國
        科技傳播 2012年3期
        關鍵詞:嵌入式動畫

        洪運國,謝 堯

        大連職業(yè)技術學院信息工程學院,遼寧大連 116035

        0 引言

        近年來,UCGUI[1]畫圖系統(tǒng)在嵌入式領域的應用越來越廣。幾乎每一項嵌入式項目的開發(fā)都會大量的應用到UCGUI,有了UCGUI畫圖系統(tǒng)的支持,在ARM板上就可以畫出許多生活中常見的簡單圖形,將這些簡單的圖形組合在一起就實現(xiàn)了很多平時看起來很難畫的實際物體,最明顯的應用要屬儀表,利用UCGUI可以在開發(fā)板上畫出很漂亮的儀表,然后應用到生活中,例如汽車儀表等。

        近20年來,隨著嵌入式領域的蓬勃發(fā)展,UCGUI的研究也取得了突破性的進展。許許多多的新的API被加入了進來,簡化了之前很多復雜的圖形繪制,還有一些函數(shù)的加入實現(xiàn)了之前沒有的功能。有了越來越多的函數(shù),UCGUI的功能也隨之越來越強大,在開發(fā)板上燒出的效果也越來越好。本設計通過VC6.0中的模擬器,展現(xiàn)出在實際開發(fā)板上一模一樣的效果。設計添加算法實現(xiàn)了許多基本圖形的繪制,還有儀表,趨勢圖,進度條,刻度尺,指示燈等單體控件以及顯示動畫,所以本設計對研究嵌入式和計算機圖形領域有一定的基礎意義。

        UCGUI所提供的函數(shù)接口是重中之重,所有圖形的繪制都需要使用UCGUI提供的接口函數(shù),UCGUI將每個基本圖形的畫法實現(xiàn)封裝成一個函數(shù),然后直接調用就可以畫出基本的圖形,至于復雜的圖形,需要基本圖形的拼接,一些復雜的動態(tài)功能,UCGUI也提供了處理方法,例如內存的分配,圖形繪制時的抗鋸齒,各種窗口控件的實現(xiàn)等。

        1 畫圖工具功能分析

        1.1 基本圖形的繪制

        UCGUI中提供的基本圖形繪制函數(shù)[2]很多,其中應用較廣的有,圓,矩形,多邊形,橢圓,點,線,折線等,這些圖形的實現(xiàn)只需要調用UCGUI相應的函數(shù)即可,其中畫點的函數(shù)還可分為畫點和畫像素點,圓,矩形,橢圓和多邊形也分為畫輪廓和填充兩種。畫線的函數(shù)中包含了畫線,畫水平線,畫垂直線。

        1.2 趨勢圖的繪制

        趨勢圖的畫法集中于兩點,一個是靜態(tài)的布局,一個是動態(tài)的顯示,其中布局是畫趨勢圖的難點,在畫之前一定要先設計好布局,正確的理解每一個區(qū)域所存在的意義,其中最復雜的地方是計算每一個區(qū)域的坐標值,稍有馬虎,畫出來的圖形就達不到預想中的效果。

        1.3 刻度尺的繪制

        刻度尺是日常生活中最常見的控件,雖然看起來刻度尺似乎并不難畫,但是實際上并不像想象中那么簡單,刻度尺根據(jù)軸的位置分為6種狀態(tài),分別為軸水平居中,軸在上,軸在下,軸垂直居中,軸在左,軸在右。畫刻度尺的難點在于刻度線的分配和刻度值的顯示,其中在分配刻度線時需要仔細,其中牽扯到浮點數(shù)的運算,要把精確度提高,以免顯示時軸與刻度線的位置不協(xié)調。

        1.4 進度條的繪制

        進度條的繪制是一個反復繪制矩形的過程,首先要將背景矩形繪制出來,之后通過反復的計算,不斷地調用GUI_FillRect()函數(shù)[3]來填充每次計算出的矩形區(qū)域,同時數(shù)字的顯示牽扯到數(shù)字透過的效果,必須設定數(shù)字的顯示效果為GUI_Mode_Trans,這樣在循環(huán)顯示數(shù)字時,才能不被填充矩形所覆蓋。

        1.5 儀表的繪制

        儀表的實現(xiàn)是最復雜的過程,由于儀表指針的移動會留下痕跡,所以儀表盤會被覆蓋,為了避免這個問題,決定將儀表畫在一塊內存區(qū)域上,這樣每次指針一移動,就在這塊內存區(qū)域上重新繪制整個儀表,這樣表盤指針移動的痕跡就不會留下了。儀表的繪制分為兩個部分,表盤和指針,分別通過GUI_DrawArc()函數(shù)[4]和GUI_DrawPolygon()函數(shù)[5]實現(xiàn)。

        1.6 動畫的顯示

        動畫其實就是把一些圖片連在一起播放,uCGUI能夠處理的圖片有3種格式,BMP,JPG和GIF,一般情況下我們使用BMP格式的圖片。圖片信息利用文件系統(tǒng)讀取,之后調用GUI_DrawBMP()把圖片放到指定的坐標位置,然后調用GUI_Clear()清屏,再把下一張圖片畫上去,反復這個過程就能達到動畫的效果。

        2 關鍵技術及其實現(xiàn)

        2.1 控件庫中動畫設計與實現(xiàn)

        動畫的顯示一直是一個難點,因為它是大量的圖片文件,這些圖片非常占內存,做嵌入式的開發(fā),內存是一個主要考慮的方面,因為一塊開發(fā)板上的內存非常有限,每一次需要申請內存時都需要仔細的計算,爭取一點內存都不要浪費。而圖片是非常占內存的,動畫需要大量的圖片,所以要想很好的顯示,板子上的內存一定要好好的處理,或者將圖片讀取到flash中去,或者加大RAM的大小,再或者再加一個RAM。

        UCGUI提供了很多處理圖片的函數(shù),能處理包括BMP,JPG,GIF三種格式的圖片。同時UCGUI也提供了將圖片放大縮小的函數(shù),這樣所讀取的圖片大小將不受限制。動畫的顯示還需要GUI_Delay

        動畫是由圖片組成的,顯示動畫的函數(shù)通過APP_GetData()函數(shù)[6]將圖片的信息讀取到一個數(shù)組中,然后調用DXCMD_DRAW_BMP()函數(shù)與DXCMD_DRAW_JPG()函數(shù)將圖片顯示到模擬器上。在這兩個函數(shù)中都選擇用DrawScaledEx的形式來顯示,這樣可以對圖片進行放大與縮小的操作,能保證圖片以一個適中的大小顯示在模擬器上。

        圖片動畫函數(shù)[7]以GUI_BMP_DrawScaledEx()和GUI_JPEG_DrawScaledEx()函數(shù)為主題,利用數(shù)組將圖片信息讀取,讀取圖片信息是一個難點,下面是對圖片讀取的部分關鍵代碼。

        2.2 Application中主調函數(shù)的設計

        控件庫[8]設計完成后,需要在Application中設計調用函數(shù),我們?yōu)槊恳粋€控件都設計了一個與之對應的調用函數(shù),我們?yōu)檫@些調用函數(shù)設計了一個名為DXExec.h的頭文件,所有調用函數(shù)都在DXExec_OS.c文件中的路由表中聲明它們的執(zhí)行順序。

        調用函數(shù)中首先將控件所需要的參數(shù)值傳遞進來,之后調用EC_DEMO_ShowIntr()函數(shù)[9]將所畫控件的名字輸出到模擬器上,之后設置背景顏色,我們這里都設置背景色為黑色,之后調用GUI_Clear(),這步是必不可少的,不然的話當畫面進行遷移的時候,上一個畫面所繪制的控件并沒有被清除,兩個控件就會出現(xiàn)重疊,所以每一個調用函數(shù)中都要有GUI_Clear()函數(shù),目的是清除上一個頁面所繪制的控件。

        3 結論

        基于ARM的畫圖工具的設計與開發(fā)的開發(fā),充分利用UCGUI的特性,幾乎所有的圖形都是通過矢量畫出來的,這樣的效果在開發(fā)板上會非常好,板子上不會出現(xiàn)閃的情況。UCGUI具有廣闊的發(fā)展空間,相信在生活中它的應用會越來越廣,隨著其版本的不斷更新,功能的不斷增加,ARM板上能呈現(xiàn)出的圖像也會越來越真實。

        [1]馬曉波,Guy L.嵌入式GUI的研制[M].成都:電子科技大學,2003:43-80.

        [2]單博煒.嵌入式GUI的研究與實現(xiàn)[M].西安:西北工業(yè)大學出版社,2004:57-92.

        [3]肖俊芳,王正勇.基于嵌入式的UCGUI圖形用戶界面系統(tǒng)設計[M].成都:成都信息工程學院,2008:30-85.

        [4]布蘭切特.C++GUI Qt4編程[M].北京:電子工業(yè)大學出版社,2008:26-89.

        [5]徐寶國.基于UCOS和UCGUI的嵌入式數(shù)字示波器[J].測控技術,2007(6):118-121.

        [6]孫曉輝,陳曉.基于UCGUI的圖形系統(tǒng)在機頂盒中的應用[J].中國有線電視,2007(2):113-117.

        [7]劉堯猛,馬永軍.基于ARM9和FPGA的嵌入式數(shù)字示波器[J].計算機應用與軟件,2010(27):287-289.

        [8]吳麗彬.嵌入式μCGUI圖像自適應滑動窗口的實現(xiàn)[J].計算機工程與應用,2010(26):184-187.

        [9]姜文濤.基于ARM與圖像仿真的無線測控終端[J].計算機工程,2011(1):244-247.

        猜你喜歡
        嵌入式動畫
        做個動畫給你看
        動畫發(fā)展史
        我的動畫夢
        文苑(2019年22期)2019-12-07 05:28:56
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術的應用
        電子制作(2018年18期)2018-11-14 01:48:16
        動畫批評融入動畫教育的思考
        新聞傳播(2018年3期)2018-05-30 07:01:39
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
        我是動畫迷
        學生天地(2016年9期)2016-05-17 05:45:06
        Altera加入嵌入式視覺聯(lián)盟
        国产成人av一区二区三区在线| 久久在一区二区三区视频免费观看| 草色噜噜噜av在线观看香蕉| 国产情侣久久久久aⅴ免费| 白浆出来无码视频在线| av资源在线永久免费观看| 在线观看视频日本一区二区| 国产精品 人妻互换| 在线欧美精品二区三区| 亚洲在线一区二区三区| 亚洲中文字幕舔尻av网站| 亚洲熟妇无码八av在线播放| 亚洲AV无码成人品爱| 一区二区三区黄色一级片| 人人妻人人澡人人爽人人精品浪潮| 少妇高潮尖叫黑人激情在线| 国产亚洲欧洲AⅤ综合一区| 在线观看视频亚洲一区二区三区 | 国产精品久久婷婷六月| 人妖一区二区三区四区| 亚洲伊人成综合网| 国产午夜精品久久久久99| 成人影院视频在线播放| 欲香欲色天天综合和网| 日产无人区一线二线三线新版| 国产午夜精品久久久久| 日本精品免费看99久久| 人人爽久久涩噜噜噜丁香| 日韩成人精品在线| 人妻露脸国语对白字幕| 午夜精品久久久久久久99老熟妇| 精品久久久久久中文字幕大豆网| 久久99久久99精品观看| 精品国产一区二区三区av免费| 中文字幕aⅴ人妻一区二区| 欧美在线资源| 少妇人妻精品一区二区三区视| 成人麻豆日韩在无码视频| 精品一区二区三区无码视频| 亚洲又黄又大又爽毛片| 丰满人妻久久中文字幕|