版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第10章 字體與文本顯示,圖形系統(tǒng)中為了獲得當(dāng)前運(yùn)行程序的相關(guān)信息,往往需要在屏幕上顯示文本,D3D 的功能擴(kuò)展ID3DXFont()對(duì)此提供了方便的解決方法。,.二維文本繪制,通過(guò)D3D功能對(duì)象ID3DXFont可以繪制文本,主要使用: ID3DXfont:DrawText()和 ID3DXFont:GetDevice()函數(shù)。,創(chuàng)建ID3DXFont對(duì)象,使用接口ID3DXFont繪制文本,首先需要通過(guò)函數(shù)D3DXCreateFont()函數(shù)通過(guò)Windows字體和D3D設(shè)備指針創(chuàng)建ID3DXFont對(duì)象。,ID3DXCreateFont()函數(shù)聲明,HRESULT D3DXCreateF
2、ont( LPDIRECT3DDEVICE9 pDevice, INT Height,UINT Width,UINT Weight, UINT MipLevels,BOOL Italic, DWORD CharSet, DWORD OutputPrecision,WORD Quality, DWORD PitchAndFamily LPCTSTR pFacename, LPD3DXFONT * ppFont );,ID3DXCreateFont()函數(shù)參數(shù)說(shuō)明,pDevice:表示一個(gè)有效的D3D設(shè)備指針 Height:表示創(chuàng)建字體的邏輯高度,如果等于則使用字體的默認(rèn)高度。 Width:表示創(chuàng)
3、建字體的平均邏輯寬度,如果等于,則使用字體的默認(rèn)寬度。 Weight、MipLevelsItalic:表示字體的權(quán)輿和過(guò)濾屬性,一般取默認(rèn)值0。 CharSet:表示創(chuàng)建字體所屬的字符集合,如果設(shè)為D3FAULT_CHARSET,則函數(shù)將自動(dòng)尋找與指定字體相符的字符集合。,ID3DXCreateFont()函數(shù)參數(shù)說(shuō)明(續(xù)),OutputPrecision:指定字符的輸出精度,通常情況下將該值設(shè)為OUT_DEFAULT_PRECIS。 Quality:指定字符的輸出質(zhì)量,通常情況下將該值設(shè)為D3FAULT_QUALITY。 PitchAndFamily:指定字休的索引號(hào) pFaceName是指
4、向表示字體名稱的字符串。 ppFont:存儲(chǔ)新創(chuàng)建的字體指針。,通過(guò)Arial字體創(chuàng)建一個(gè)ID3DXFont對(duì)象,LPD3DXFONT g_pFont = 0; if (FAILED(D3DXCreateFont( g_pd3dDevice, ,0,0,0,0,0,0,0,0, LArial, ,使用ID3DXFont對(duì)象繪制二維文本,創(chuàng)建了ID3DXFont對(duì)象后,就可以使用其接口函數(shù)ID3DXFont:DrawText()在指定位置繪制二維文本。該函數(shù)支持ANSI雙字節(jié)字符串。,ID3DXFont:DrawText()函數(shù)聲明,INT ID3DXFont:DrawText( LPD3DXS
5、PRITE pSprite, LPCSTR pSting, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color );,ID3DXFont:DrawText()參數(shù)說(shuō)明,pSprite:指定字符串所屬的ID3DXSprite對(duì)象接口,可置為默認(rèn)值為,表示在當(dāng)前窗口繪制字符串。 pSting:指定將要繪制的字符串。 Count:指定繪制字符的個(gè)數(shù),如果等于-1,則函數(shù)將自動(dòng)繪制到字符串結(jié)束為止。 pRect:指定繪制字符串的矩形區(qū)域位置。 Format:指定字符串在pRect指定的矩形區(qū)域內(nèi)的擺放屬性,這些屬性可以通過(guò)位去處“或”(|)聯(lián)合使
6、用。 Color:指定字符串的顏色值,屬于D3DCOLOR結(jié)構(gòu)。,常用字符串排放屬性,常用字符串排放屬性(續(xù)表),下列代碼在窗口客戶區(qū)中央顯示一行白色的文字:Welcome Direct3D!,WCHAR* strText = LWelcome Direct3D!; g_pFont-DrawText(NULL, strText, (int)wcslen(strText), ,ID3DXFont其他相關(guān)接口函數(shù),函數(shù)ID3DXFont:GetDevice()能夠獲得與ID3DXFont相關(guān)聯(lián)的D3D設(shè)備指針,該函數(shù)聲明如下:,. 三維文本繪制,創(chuàng)建三維文本網(wǎng)格模型,在D3D中,三維物體的顯示是通
7、過(guò)網(wǎng)格模型來(lái)實(shí)現(xiàn)的,顯示三維物體的關(guān)鍵在于生成該網(wǎng)格模型。三維文本也不例外,顯示三維文本同樣需要該文本所對(duì)應(yīng)的網(wǎng)格模型。D3D為此提供了功能庫(kù)函數(shù)D3DXCreateText(),它可以方便地創(chuàng)建一個(gè)包含具體文本的網(wǎng)格模型。,D3DXCreateText()聲明,HRESULT D3DXCreateText( LPDIRECT3DDEVICE9pDevice, HDC hDC, LPCTSTR pText, FLOAT Deviation, FLOAT Extrusion, LPD3DXMESH *ppMesh, LPD3DXBUFFER *ppAdjacency, LPGLYPHMETERI
8、CSFLOAT pGlyphMetrics ),D3DXCreateText()參數(shù)說(shuō)明,LpDevice:用于創(chuàng)建網(wǎng)格的3D設(shè)備指針 hDC:表示設(shè)備描述表。 pText:指定具體文本字符串 Deviation:指定弦偏差的最大值。 Extrusion:指定文本在z軸負(fù)方向突出的總量。 ppMesh:指向生成字體網(wǎng)格模型地址的指針。 ppAdjacency:指向包含相關(guān)輸出信息緩沖區(qū)的指針,可以為NULL。 pGlyphMetrics:指向GLYPHMETRICSFLOAT結(jié)構(gòu)體數(shù)組指,該數(shù)組可以包括所有字符的相關(guān)數(shù)據(jù)。,創(chuàng)建文本“三維字體”的網(wǎng)格模型的代碼,/創(chuàng)建設(shè)備描述表 HDC hdc
9、 = CreateCompatibleDC( NULL ); if( hdc = NULL ) return E_OUTOFMEMORY; /創(chuàng)建字體 HFONT hFont = CreateFont(0, 0, 0, 0, FW_BOLD , false,false, false, DEFAULT_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, LArial); /將字體選進(jìn)設(shè)備描述表 SelectObject(hdc, hFont);,繪制三維文本網(wǎng)格模型,創(chuàng)建好文本的網(wǎng)格模型之后,就可以使用ID3DXMesh的接口函數(shù)DrawSubset()將其繪制出來(lái),在繪制之前需要注意設(shè)置合適的世界矩陣,這時(shí)雖然是繪制三維文本,但實(shí)質(zhì)上就是繪制一個(gè)三維物體,所以為三維文本設(shè)置世界矩陣是必不可少的。,繪制三維文本的代碼片段,VOID SetWorldMatrix() /創(chuàng)建并設(shè)置世界矩陣 D3DXMATRIX matWorld; D3DXMATRIX matTrans; D3DXMatrixTranslation(,小結(jié),文本繪制
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 該制度的程序?qū)崿F(xiàn)主要依賴于民事訴訟法中的行為保全制度
- 計(jì)生四項(xiàng)制度
- 供水稽查員春節(jié)假期安全告知書
- 2026福建省汽車工業(yè)集團(tuán)有限公司招聘160人參考考試題庫(kù)附答案解析
- 2026廣東廣州銀行信用卡中心特殊資產(chǎn)部副職招聘1人參考考試試題附答案解析
- 2026天津南開區(qū)教育系統(tǒng)招聘(含高層次人才)170人備考考試試題附答案解析
- 2026廣西柳州市第一批就業(yè)見習(xí)崗位招募128人參考考試試題附答案解析
- 2026年上半年黑龍江省體育局事業(yè)單位公開招聘工作人員13人備考考試試題附答案解析
- 2026年上半年黑龍江省事業(yè)單位公開招聘(4254人)備考考試題庫(kù)附答案解析
- 2026公安部第三研究所招聘人民警察24人參考考試題庫(kù)附答案解析
- 專題15平面解析幾何(選擇填空題)(第一部分)(解析版) - 大數(shù)據(jù)之十年高考真題(2014-2025)與優(yōu) 質(zhì)模擬題(新高考卷與全國(guó)理科卷)
- 茜草素的藥代動(dòng)力學(xué)和藥效學(xué)研究
- T-CPQS C010-2024 鑒賞收藏用潮流玩偶及類似用途產(chǎn)品
- 林業(yè)管理制度
- HG/T 3811-2023 工業(yè)溴化物試驗(yàn)方法 (正式版)
- 2022年國(guó)際貨代考試(海運(yùn))模擬試卷一
- 中小學(xué)建筑設(shè)計(jì)規(guī)范2022年
- 工程財(cái)務(wù)管理制度
- 天津大學(xué)研究生英語(yǔ)上機(jī)考試樣題附答案
- 預(yù)制渡槽吊裝施工專項(xiàng)方案
- 2噸每小時(shí)雙級(jí)反滲透設(shè)備工藝流程介紹資料
評(píng)論
0/150
提交評(píng)論