




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章字体与文本显示 图形系统中为了获得当前运行程序的相关信息 往往需要在屏幕上显示文本 D3D的功能扩展ID3DXFont 对此提供了方便的解决方法 二维文本绘制 通过D3D功能对象ID3DXFont可以绘制文本 主要使用 ID3DXfont DrawText 和ID3DXFont GetDevice 函数 创建ID3DXFont对象 使用接口ID3DXFont绘制文本 首先需要通过函数D3DXCreateFont 函数通过Windows字体和D3D设备指针创建ID3DXFont对象 ID3DXCreateFont 函数声明 HRESULTD3DXCreateFont LPDIRECT3DDEVICE9pDevice INTHeight UINTWidth UINTWeight UINTMipLevels BOOLItalic DWORDCharSet DWORDOutputPrecision WORDQuality DWORDPitchAndFamilyLPCTSTRpFacename LPD3DXFONT ppFont ID3DXCreateFont 函数参数说明 pDevice 表示一个有效的D3D设备指针Height 表示创建字体的逻辑高度 如果等于 则使用字体的默认高度 Width 表示创建字体的平均逻辑宽度 如果等于 则使用字体的默认宽度 Weight MipLevelsItalic 表示字体的权舆和过滤属性 一般取默认值0 CharSet 表示创建字体所属的字符集合 如果设为D3FAULT CHARSET 则函数将自动寻找与指定字体相符的字符集合 ID3DXCreateFont 函数参数说明 续 OutputPrecision 指定字符的输出精度 通常情况下将该值设为OUT DEFAULT PRECIS Quality 指定字符的输出质量 通常情况下将该值设为D3FAULT QUALITY PitchAndFamily 指定字休的索引号pFaceName是指向表示字体名称的字符串 ppFont 存储新创建的字体指针 通过Arial字体创建一个ID3DXFont对象 LPD3DXFONTg pFont 0 if FAILED D3DXCreateFont g pd3dDevice 0 0 0 0 0 0 0 0 L Arial 使用ID3DXFont对象绘制二维文本 创建了ID3DXFont对象后 就可以使用其接口函数ID3DXFont DrawText 在指定位置绘制二维文本 该函数支持ANSI双字节字符串 ID3DXFont DrawText 函数声明 INTID3DXFont DrawText LPD3DXSPRITEpSprite LPCSTRpSting INTCount LPRECTpRect DWORDFormat D3DCOLORColor ID3DXFont DrawText 参数说明 pSprite 指定字符串所属的ID3DXSprite对象接口 可置为默认值为 表示在当前窗口绘制字符串 pSting 指定将要绘制的字符串 Count 指定绘制字符的个数 如果等于 1 则函数将自动绘制到字符串结束为止 pRect 指定绘制字符串的矩形区域位置 Format 指定字符串在pRect指定的矩形区域内的摆放属性 这些属性可以通过位去处 或 联合使用 Color 指定字符串的颜色值 属于D3DCOLOR结构 常用字符串排放属性 常用字符串排放属性 续表 下列代码在窗口客户区中央显示一行白色的文字 WelcomeDirect3D WCHAR strText L WelcomeDirect3D g pFont DrawText NULL strText int wcslen strText ID3DXFont其他相关接口函数 函数ID3DXFont GetDevice 能够获得与ID3DXFont相关联的D3D设备指针 该函数声明如下 三维文本绘制 创建三维文本网格模型 在D3D中 三维物体的显示是通过网格模型来实现的 显示三维物体的关键在于生成该网格模型 三维文本也不例外 显示三维文本同样需要该文本所对应的网格模型 D3D为此提供了功能库函数D3DXCreateText 它可以方便地创建一个包含具体文本的网格模型 D3DXCreateText 声明 HRESULTD3DXCreateText LPDIRECT3DDEVICE9pDevice HDChDC LPCTSTRpText FLOATDeviation FLOATExtrusion LPD3DXMESH ppMesh LPD3DXBUFFER ppAdjacency LPGLYPHMETERICSFLOATpGlyphMetrics D3DXCreateText 参数说明 LpDevice 用于创建网格的3D设备指针hDC 表示设备描述表 pText 指定具体文本字符串Deviation 指定弦偏差的最大值 Extrusion 指定文本在z轴负方向突出的总量 ppMesh 指向生成字体网格模型地址的指针 ppAdjacency 指向包含相关输出信息缓冲区的指针 可以为NULL pGlyphMetrics 指向GLYPHMETRICSFLOAT结构体数组指 该数组可以包括所有字符的相关数据 创建文本 三维字体 的网格模型的代码 创建设备描述表HDChdc CreateCompatibleDC NULL if hdc NULL returnE OUTOFMEMORY 创建字体HFONThFont CreateFont 0 0 0 0 FW BOLD false false false DEFAULT CHARSET OUT DEFAULT PRECIS CLIP DEFAULT PRECIS DEFAULT QUALITY DEFAULT PITCH FF DONTCARE L Arial 将字体选进设备描述表SelectObject hdc hFont 绘制三维文本网格模型 创建好文本的网格模型之后 就可以使用ID3DXMesh的接口函数DrawSubset 将其绘制出来 在绘制之前需要注意设置合适的世界矩阵 这时虽然是绘制三维文本 但实质上就是绘制一个三维物体 所以为三维文本设置世界矩阵是必不可少的 绘制三维文本的代码片段 VOIDSetWorldMatrix 创建并设置世界矩阵D3DXMATRIXmatWorld D3DXMATRIXmatTrans D3DXMatrixTranslation 小结 文本绘制是图形程序设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 德国代际协议书
- 职业技能训练师岗位工艺技术规程
- 协议书离婚去哪
- 2025最正规的租赁合同
- 2026届湖北省天门市数学九年级第一学期期末质量检测模拟试题含解析
- 2026届河北省邢台市宁晋县数学九上期末联考模拟试题含解析
- 在线办公行业报告:远程办公需求与市场前景分析
- 山东省安丘市二中学2026届数学七上期末监测试题含解析
- 2026届江苏省南京溧水区数学七上期末质量检测模拟试题含解析
- 邮储银行渭南市华阴市2025秋招笔试经济学专练及答案
- 科学教育:未来启航
- 金太阳九年级数学月考试卷及答案
- 现代农业装备与应用课件
- 煤矿事故汇报程序
- 高等数学(经济类)第5版课件:数列的极限
- 老年病人误吸预防及护理
- 安徽省宣城市2023-2024学年高二上学期期末考试 英语 含答案
- 2024年高级执法资格考试题及解析
- 酒店住宿清单模板共5份不同模板
- 新学期新起点励志奋斗青春初三毕业班开学第一课主题班会课件
- 盐酸右美托咪定鼻喷雾剂-临床用药解读
评论
0/150
提交评论