九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第10章 字體與文本

上傳人:hjk****65 文檔編號(hào):203998720 上傳時(shí)間:2023-04-25 格式:PPT 頁數(shù):22 大?。?4.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
第10章 字體與文本_第1頁
第1頁 / 共22頁
第10章 字體與文本_第2頁
第2頁 / 共22頁
第10章 字體與文本_第3頁
第3頁 / 共22頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第10章 字體與文本》由會(huì)員分享,可在線閱讀,更多相關(guān)《第10章 字體與文本(22頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、第10章 字體與文本顯示圖形系統(tǒng)中為了獲得當(dāng)前運(yùn)行程序的相關(guān)信息,往往需要在屏幕上顯示文本,D3D 的功能擴(kuò)展ID3DXFont()對此提供了方便的解決方法。.二維文本繪制通過D3D功能對象ID3DXFont可以繪制文本,主要使用:ID3DXfont:DrawText()和ID3DXFont:GetDevice()函數(shù)。1.創(chuàng)建ID3DXFont對象使用接口ID3DXFont繪制文本,首先需要通過函數(shù)D3DXCreateFont()函數(shù)通過Windows字體和D3D設(shè)備指針創(chuàng)建ID3DXFont對象。ID3DXCreateFont()函數(shù)聲明HRESULT D3DXCreateFont(LPD

2、IRECT3DDEVICE9 pDevice,INT Height,UINT Width,UINT Weight,UINT MipLevels,BOOL Italic,DWORD CharSet,DWORD OutputPrecision,WORD Quality,DWORD PitchAndFamilyLPCTSTR pFacename,LPD3DXFONT*ppFont);ID3DXCreateFont()函數(shù)參數(shù)說明pDevice:表示一個(gè)有效的D3D設(shè)備指針Height:表示創(chuàng)建字體的邏輯高度,如果等于則使用字體的默認(rèn)高度。Width:表示創(chuàng)建字體的平均邏輯寬度,如果等于,則使用字體的

3、默認(rèn)寬度。Weight、MipLevelsItalic:表示字體的權(quán)輿和過濾屬性,一般取默認(rèn)值0。CharSet:表示創(chuàng)建字體所屬的字符集合,如果設(shè)為D3FAULT_CHARSET,則函數(shù)將自動(dòng)尋找與指定字體相符的字符集合。ID3DXCreateFont()函數(shù)參數(shù)說明(續(xù))OutputPrecision:指定字符的輸出精度,通常情況下將該值設(shè)為OUT_DEFAULT_PRECIS。Quality:指定字符的輸出質(zhì)量,通常情況下將該值設(shè)為D3FAULT_QUALITY。PitchAndFamily:指定字休的索引號(hào)pFaceName是指向表示字體名稱的字符串。ppFont:存儲(chǔ)新創(chuàng)建的字體指針

4、。通過Arial字體創(chuàng)建一個(gè)ID3DXFont對象LPD3DXFONT g_pFont =0;if(FAILED(D3DXCreateFont(g_pd3dDevice,0,0,0,0,0,0,0,0,LArial,&g_pFont)return E_FAIL;2.使用ID3DXFont對象繪制二維文本創(chuàng)建了ID3DXFont對象后,就可以使用其接口函數(shù)ID3DXFont:DrawText()在指定位置繪制二維文本。該函數(shù)支持ANSI雙字節(jié)字符串。ID3DXFont:DrawText()函數(shù)聲明INT ID3DXFont:DrawText(LPD3DXSPRITE pSprite,LPCSTR

5、 pSting,INT Count,LPRECT pRect,DWORD Format,D3DCOLOR Color);ID3DXFont:DrawText()參數(shù)說明pSprite:指定字符串所屬的ID3DXSprite對象接口,可置為默認(rèn)值為,表示在當(dāng)前窗口繪制字符串。pSting:指定將要繪制的字符串。Count:指定繪制字符的個(gè)數(shù),如果等于-1,則函數(shù)將自動(dòng)繪制到字符串結(jié)束為止。pRect:指定繪制字符串的矩形區(qū)域位置。Format:指定字符串在pRect指定的矩形區(qū)域內(nèi)的擺放屬性,這些屬性可以通過位去處“或”(|)聯(lián)合使用。Color:指定字符串的顏色值,屬于D3DCOLOR結(jié)構(gòu)。常

6、用字符串排放屬性擺放屬性說明DT_BOTTOM字符串位于pRect的底部,該心性只能與DT_SINGLELINE共存DT_CALCRECT 根據(jù)字符串的長度更改pRect指定的矩形區(qū)域的大小。DT_CENTER字符串位pRect的水平居中DT_LEFT字符串向pRect的左邊對齊DT_NOCLIP不對字符串進(jìn)行裁剪常用字符串排放屬性(續(xù)表)擺放屬性說明DT_RIGHT字符串向pRect右方對齊DT_SINGLELINE 將字符串單行顯示,忽略換行標(biāo)記。DT_TOP字符串位于pRect的頂端DT_VCENTER字符串位于pRect垂直居中下列代碼在窗口客戶區(qū)中央顯示一行白色的文字:Welcome

7、 Direct3D!WCHAR*strText =LWelcome Direct3D!;g_pFont-DrawText(NULL,strText,(int)wcslen(strText),&clientRect,DT_SINGLELINE|DT_NOCLIP|DT_CENTER|DT_VCENTER,0 xffffffff);3.ID3DXFont其他相關(guān)接口函數(shù)函數(shù)ID3DXFont:GetDevice()能夠獲得與ID3DXFont相關(guān)聯(lián)的D3D設(shè)備指針,該函數(shù)聲明如下:.三維文本繪制1.創(chuàng)建三維文本網(wǎng)格模型在D3D中,三維物體的顯示是通過網(wǎng)格模型來實(shí)現(xiàn)的,顯示三維物體的關(guān)鍵在于生成該網(wǎng)

8、格模型。三維文本也不例外,顯示三維文本同樣需要該文本所對應(yīng)的網(wǎng)格模型。D3D為此提供了功能庫函數(shù)D3DXCreateText(),它可以方便地創(chuàng)建一個(gè)包含具體文本的網(wǎng)格模型。D3DXCreateText()聲明HRESULT D3DXCreateText(LPDIRECT3DDEVICE9pDevice,HDC hDC,LPCTSTR pText,FLOAT Deviation,FLOAT Extrusion,LPD3DXMESH*ppMesh,LPD3DXBUFFER*ppAdjacency,LPGLYPHMETERICSFLOAT pGlyphMetrics)D3DXCreateText(

9、)參數(shù)說明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=CreateCompatibleDC(NULL);if(hdc=NULL)return E_OUT

10、OFMEMORY;/創(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);2.繪制三維文本網(wǎng)格模型創(chuàng)建好文本的網(wǎng)格模型之后,就可以使用ID3DXMesh的接口函數(shù)DrawSubset()將其繪制出來,在繪制之前需要注意設(shè)置合適的世界矩陣,這時(shí)雖然是繪制

11、三維文本,但實(shí)質(zhì)上就是繪制一個(gè)三維物體,所以為三維文本設(shè)置世界矩陣是必不可少的。繪制三維文本的代碼片段VOID SetWorldMatrix()/創(chuàng)建并設(shè)置世界矩陣 D3DXMATRIX matWorld;D3DXMATRIX matTrans;D3DXMatrixTranslation(&matWorld,-1.75f,0.0f,0.0f);/平移 g_pd3dDevice-SetTransform(D3DTS_WORLD,&matWorld);pTextMesh-DrawSubset(0);小結(jié)文本繪制是圖形程序設(shè)計(jì)中不可或缺的一部分,正確適當(dāng)?shù)剡M(jìn)行文本繪制在圖形程序設(shè)計(jì)中具有非常重要的實(shí)際意義。本章通過兩個(gè)示例程序詳細(xì)介紹了在D3D中如何進(jìn)行二維和三維文本的繪制。二信字體的顯示比較簡單,可以結(jié)合示例程序進(jìn)一步加深理解。三維字體的顯示關(guān)鍵在于構(gòu)造出字符串所對應(yīng)的網(wǎng)格模型,然后在場景中渲染該三維模型即可。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!