一種指針式虛擬儀表盤的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種指針式虛擬儀表盤的實(shí)現(xiàn)方法,包括:建立一份設(shè)備上下文;加載表盤背景;復(fù)制兩份內(nèi)存上下文,表盤背景作為畫布;加載表針圖片;獲取表針圖像大??;設(shè)置表針旋轉(zhuǎn)中心;表針旋轉(zhuǎn)α角度后,以一個(gè)坐標(biāo)為旋轉(zhuǎn)中心,以step距離進(jìn)行柵格化處理;獲取每個(gè)小矩形坐標(biāo);在一個(gè)內(nèi)存上下文中繪制旋轉(zhuǎn)α角度的表針;將上述內(nèi)存上下文中相應(yīng)位置圖像復(fù)制到設(shè)備上下文上進(jìn)行顯示;當(dāng)角度α發(fā)生變化后,在上述內(nèi)存上下文中重新繪制表針;按照角度α變化前矩形坐標(biāo),用另外一個(gè)內(nèi)存上下文中相應(yīng)背景圖像擦除設(shè)備上下文上的上一次表針顯示內(nèi)容;按照角度α變化后的矩形坐標(biāo),將內(nèi)存上下文中相應(yīng)位置圖像復(fù)制到設(shè)備上下文上進(jìn)行顯示。
【專利說明】一種指針式虛擬儀表盤的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于機(jī)動(dòng)車輛儀表盤【技術(shù)領(lǐng)域】,具體涉及一種指針式虛擬儀表盤的實(shí)現(xiàn)方 法。
【背景技術(shù)】
[0002] 目前,最常見的儀表盤大多數(shù)采用動(dòng)圈或動(dòng)磁式模擬儀表、步進(jìn)電機(jī)式數(shù)字儀表 方式進(jìn)行信息顯示,而隨著計(jì)算機(jī)和液晶顯示技術(shù)進(jìn)一步發(fā)展,一些設(shè)備開始逐步采用液 晶屏進(jìn)行人機(jī)交互,由此儀表盤也變得越來越漂亮,功能越來越多,從實(shí)用開始走向時(shí)尚、 炫目,最終完成實(shí)用與時(shí)尚的完美結(jié)合。
[0003] 為了不改變操作者的使用習(xí)慣,雖然很多設(shè)備的儀表盤逐漸升級為液晶屏顯示, 但是像發(fā)動(dòng)機(jī)轉(zhuǎn)速、車速等參數(shù)還要在液晶屏上模擬真實(shí)儀表進(jìn)行顯示,這種需求給產(chǎn)品 的實(shí)現(xiàn)帶來很多問題:
[0004] 首先,表針轉(zhuǎn)動(dòng)時(shí),需要模擬模擬儀表加、減速等慣性環(huán)節(jié),顯示要連續(xù),不能一步 一步跳動(dòng);
[0005] 其次,刷新頻率要高,一般要達(dá)到毫秒級,由于刷新速度快,背景重繪時(shí)容易造成 屏幕閃爍。
[0006] 針對以上問題,很多廠家采用雙緩沖技術(shù)消除儀表顯示畫面的閃爍問題,效果并 不理想,采用雙緩沖的方式,只解決了后臺圖形繪制、復(fù)雜圖形計(jì)算等效率,但是不能夠提 高從緩存中讀取的速度,隨著屏幕和分辨率逐步變大,顯示的虛擬儀表數(shù)量變多,閃爍的問 題就變得十分明顯。由于嵌入式設(shè)備資源比較有限,有些廠家犧牲硬件成本解決軟件問題, 造成成本增大。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明要解決的技術(shù)問題是設(shè)計(jì)一種具有如下功能的指針式虛擬儀表盤的實(shí)現(xiàn) 方法:將特定區(qū)域分割成若干個(gè)小方框,背景重繪時(shí)只需要刷新通過計(jì)算獲得的方框即可, 減少刷新面積,可以解決虛擬表盤在實(shí)時(shí)刷新過程中閃爍問題,提高表盤顯示效果和硬件 使用效率,降低硬件成本。
[0008] 為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0009] -種指針式虛擬儀表盤的實(shí)現(xiàn)方法,包括如下步驟:
[0010] 步驟101、建立一份設(shè)備上下文DC ;
[0011] 步驟102、加載表盤背景,并在設(shè)備上下文DC上進(jìn)行顯示;
[0012] 步驟103、復(fù)制兩份內(nèi)存上下文MEMDCUMEMDC2,表盤背景作為畫布;
[0013] 步驟104、加載表針圖片;
[0014] 步驟105、獲取表針圖像大小,寬度w,長度1,此時(shí)表針可以表示成長為1,寬為w 的矩形;
[0015] 步驟106、設(shè)置表針旋轉(zhuǎn)中心(XtlJ0);
[0016] 步驟107、表針旋轉(zhuǎn)α角度后,以坐標(biāo)(X。,YQ)為旋轉(zhuǎn)中心,以st印距離進(jìn)行柵格 化處理;
[0017] 步驟108、通過幾何計(jì)算,獲取每個(gè)小矩形坐標(biāo);
[0018] 步驟109、在內(nèi)存上下文MEMDCl中繪制旋轉(zhuǎn)α角度的表針;
[0019] 步驟110、按照步驟108獲得的矩形坐標(biāo),將內(nèi)存上下文MEMDCl中相應(yīng)位置圖像復(fù) 制到設(shè)備上下文DC上進(jìn)行顯示;
[0020] 步驟111、當(dāng)角度α發(fā)生變化后,在內(nèi)存上下文MEMDCl中重新繪制表針,并通過幾 何計(jì)算得到新的矩形坐標(biāo);
[0021] 步驟112、按照角度α變化前矩形坐標(biāo),用內(nèi)存上下文MEMDC2中相應(yīng)背景圖像擦 除設(shè)備上下文DC上的上一次表針顯示內(nèi)容,保持背景不變;
[0022] 步驟113、按照角度α變化后的矩形坐標(biāo),將MEMDCl中相應(yīng)位置圖像復(fù)制到設(shè)備 上下文DC上進(jìn)行顯示;
[0023] 步驟114、如果角度α發(fā)生變化,則重復(fù)步驟111?113。
[0024] 進(jìn)一步:上述步驟108的具體計(jì)算過程如下:
[0025] 步驟1、已知表針圖像大小,即寬度w和長度1,旋轉(zhuǎn)角度α,步長st??;
[0026] 步驟2、根據(jù)旋轉(zhuǎn)角度α,可知直線斜率k = tan(a)
[0027] 步驟3.將系統(tǒng)坐標(biāo)平移至表針旋轉(zhuǎn)中心(H)可得到求中線函數(shù)
[0028] y' = k*x'
[0029] 其中:x'為平移坐標(biāo)系中的橫坐標(biāo),y'為平移坐標(biāo)系中的縱坐標(biāo)
[0030] 步驟4、當(dāng)0彡α彡45時(shí),根據(jù)圖片寬度w,可以求出另外表針矩形框的兩條長邊 平行線函數(shù)方程:
【權(quán)利要求】
1. 一種指針式虛擬儀表盤的實(shí)現(xiàn)方法,其特征在于,包括如下步驟: 步驟101、建立一份設(shè)備上下文DC ; 步驟102、加載表盤背景,并在設(shè)備上下文DC上進(jìn)行顯示; 步驟103、復(fù)制兩份內(nèi)存上下文MEMDCUMEMDC2,表盤背景作為畫布; 步驟104、加載表針圖片; 步驟105、獲取表針圖像大小,寬度w,長度1,此時(shí)表針可以表示成長為1,寬為w的矩 形; 步驟106、設(shè)置表針旋轉(zhuǎn)中心(H); 步驟107、表針旋轉(zhuǎn)a角度后,以坐標(biāo)(\,I)為旋轉(zhuǎn)中心,以step距離進(jìn)行柵格化處 理; 步驟108、通過幾何計(jì)算,獲取每個(gè)小矩形坐標(biāo); 步驟109、在內(nèi)存上下文MEMDC1中繪制旋轉(zhuǎn)a角度的表針; 步驟110、按照步驟108獲得的矩形坐標(biāo),將內(nèi)存上下文MEMDC1中相應(yīng)位置圖像復(fù)制到 設(shè)備上下文DC上進(jìn)行顯示; 步驟111、當(dāng)角度a發(fā)生變化后,在內(nèi)存上下文MEMDC1中重新繪制表針,并通過幾何計(jì) 算得到新的矩形坐標(biāo); 步驟112、按照角度a變化前矩形坐標(biāo),用內(nèi)存上下文MEMDC2中相應(yīng)背景圖像擦除設(shè) 備上下文DC上的上一次表針顯示內(nèi)容,保持背景不變; 步驟113、按照角度a變化后的矩形坐標(biāo),將MEMDC1中相應(yīng)位置圖像復(fù)制到設(shè)備上下 文DC上進(jìn)行顯示; 步驟114、如果角度a發(fā)生變化,則重復(fù)步驟111?113。
【文檔編號】B60K35/00GK104385920SQ201410536038
【公開日】2015年3月4日 申請日期:2014年10月11日 優(yōu)先權(quán)日:2014年10月11日
【發(fā)明者】李玉河, 高陽 申請人:天津工程機(jī)械研究院