歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

第10章 字體與文本

  • 資源ID:203998720       資源大小:64.50KB        全文頁數(shù):22頁
  • 資源格式: PPT        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

第10章 字體與文本

第10章 字體與文本顯示圖形系統(tǒng)中為了獲得當前運行程序的相關信息,往往需要在屏幕上顯示文本,D3D 的功能擴展ID3DXFont()對此提供了方便的解決方法。.二維文本繪制通過D3D功能對象ID3DXFont可以繪制文本,主要使用:ID3DXfont:DrawText()和ID3DXFont:GetDevice()函數(shù)。1.創(chuàng)建ID3DXFont對象使用接口ID3DXFont繪制文本,首先需要通過函數(shù)D3DXCreateFont()函數(shù)通過Windows字體和D3D設備指針創(chuàng)建ID3DXFont對象。ID3DXCreateFont()函數(shù)聲明HRESULT D3DXCreateFont(LPDIRECT3DDEVICE9 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:表示一個有效的D3D設備指針Height:表示創(chuàng)建字體的邏輯高度,如果等于則使用字體的默認高度。Width:表示創(chuàng)建字體的平均邏輯寬度,如果等于,則使用字體的默認寬度。Weight、MipLevelsItalic:表示字體的權輿和過濾屬性,一般取默認值0。CharSet:表示創(chuàng)建字體所屬的字符集合,如果設為D3FAULT_CHARSET,則函數(shù)將自動尋找與指定字體相符的字符集合。ID3DXCreateFont()函數(shù)參數(shù)說明(續(xù))OutputPrecision:指定字符的輸出精度,通常情況下將該值設為OUT_DEFAULT_PRECIS。Quality:指定字符的輸出質量,通常情況下將該值設為D3FAULT_QUALITY。PitchAndFamily:指定字休的索引號pFaceName是指向表示字體名稱的字符串。ppFont:存儲新創(chuàng)建的字體指針。通過Arial字體創(chuàng)建一個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 pSting,INT Count,LPRECT pRect,DWORD Format,D3DCOLOR Color);ID3DXFont:DrawText()參數(shù)說明pSprite:指定字符串所屬的ID3DXSprite對象接口,可置為默認值為,表示在當前窗口繪制字符串。pSting:指定將要繪制的字符串。Count:指定繪制字符的個數(shù),如果等于-1,則函數(shù)將自動繪制到字符串結束為止。pRect:指定繪制字符串的矩形區(qū)域位置。Format:指定字符串在pRect指定的矩形區(qū)域內的擺放屬性,這些屬性可以通過位去處“或”(|)聯(lián)合使用。Color:指定字符串的顏色值,屬于D3DCOLOR結構。常用字符串排放屬性擺放屬性說明DT_BOTTOM字符串位于pRect的底部,該心性只能與DT_SINGLELINE共存DT_CALCRECT 根據(jù)字符串的長度更改pRect指定的矩形區(qū)域的大小。DT_CENTER字符串位pRect的水平居中DT_LEFT字符串向pRect的左邊對齊DT_NOCLIP不對字符串進行裁剪常用字符串排放屬性(續(xù)表)擺放屬性說明DT_RIGHT字符串向pRect右方對齊DT_SINGLELINE 將字符串單行顯示,忽略換行標記。DT_TOP字符串位于pRect的頂端DT_VCENTER字符串位于pRect垂直居中下列代碼在窗口客戶區(qū)中央顯示一行白色的文字:Welcome 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其他相關接口函數(shù)函數(shù)ID3DXFont:GetDevice()能夠獲得與ID3DXFont相關聯(lián)的D3D設備指針,該函數(shù)聲明如下:.三維文本繪制1.創(chuàng)建三維文本網(wǎng)格模型在D3D中,三維物體的顯示是通過網(wǎng)格模型來實現(xiàn)的,顯示三維物體的關鍵在于生成該網(wǎng)格模型。三維文本也不例外,顯示三維文本同樣需要該文本所對應的網(wǎng)格模型。D3D為此提供了功能庫函數(shù)D3DXCreateText(),它可以方便地創(chuàng)建一個包含具體文本的網(wǎng)格模型。D3DXCreateText()聲明HRESULT D3DXCreateText(LPDIRECT3DDEVICE9pDevice,HDC hDC,LPCTSTR pText,FLOAT Deviation,FLOAT Extrusion,LPD3DXMESH*ppMesh,LPD3DXBUFFER*ppAdjacency,LPGLYPHMETERICSFLOAT pGlyphMetrics)D3DXCreateText()參數(shù)說明LpDevice:用于創(chuàng)建網(wǎng)格的3D設備指針hDC:表示設備描述表。pText:指定具體文本字符串Deviation:指定弦偏差的最大值。Extrusion:指定文本在z軸負方向突出的總量。ppMesh:指向生成字體網(wǎng)格模型地址的指針。ppAdjacency:指向包含相關輸出信息緩沖區(qū)的指針,可以為NULL。pGlyphMetrics:指向GLYPHMETRICSFLOAT結構體數(shù)組指,該數(shù)組可以包括所有字符的相關數(shù)據(jù)。創(chuàng)建文本“三維字體”的網(wǎng)格模型的代碼/創(chuàng)建設備描述表HDC hdc=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);/將字體選進設備描述表SelectObject(hdc,hFont);2.繪制三維文本網(wǎng)格模型創(chuàng)建好文本的網(wǎng)格模型之后,就可以使用ID3DXMesh的接口函數(shù)DrawSubset()將其繪制出來,在繪制之前需要注意設置合適的世界矩陣,這時雖然是繪制三維文本,但實質上就是繪制一個三維物體,所以為三維文本設置世界矩陣是必不可少的。繪制三維文本的代碼片段VOID SetWorldMatrix()/創(chuàng)建并設置世界矩陣 D3DXMATRIX matWorld;D3DXMATRIX matTrans;D3DXMatrixTranslation(&matWorld,-1.75f,0.0f,0.0f);/平移 g_pd3dDevice-SetTransform(D3DTS_WORLD,&matWorld);pTextMesh-DrawSubset(0);小結文本繪制是圖形程序設計中不可或缺的一部分,正確適當?shù)剡M行文本繪制在圖形程序設計中具有非常重要的實際意義。本章通過兩個示例程序詳細介紹了在D3D中如何進行二維和三維文本的繪制。二信字體的顯示比較簡單,可以結合示例程序進一步加深理解。三維字體的顯示關鍵在于構造出字符串所對應的網(wǎng)格模型,然后在場景中渲染該三維模型即可。

注意事項

本文(第10章 字體與文本)為本站會員(hjk****65)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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