资源简介
基于opengl VC 实现的3D漫游,内附有注释,适合新手学习
代码片段和文件信息
// GLFont.cpp: implementation of the CGLFont class.
//程序设计:唐明理 2005.2
//E_mail cqtml@163.com
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “GLFont.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//unsigned int base;
//////////////////////////////////////////////////////////////////////
CGLFont::CGLFont()
{
}
CGLFont::~CGLFont()
{
}
void CGLFont::entext( float xfloat y LPCTSTR str HFONT hFont
float r float g float b)
{ HDC hdc = wglGetCurrentDC();
Selectobject(hdc hFont);
unsigned int base = glGenLists(96);
wglUseFontBitmaps(hdc 32 96base);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glPushAttrib(GL_LIST_BIT);
glColor3f(rgb);
glRasterPos2f(x/100 y/100);
glListbase(base - 32);
glCallLists(strlen(str) GL_UNSIGNED_BYTE str);
glPopAttrib();
glEnable(GL_LIGHTING);
glEnable(GL_TEXTURE_2D);
glDeleteLists(base 96);
}
//////////////////////////////////////////////////////////////////
void CGLFont::c3dtext(LPCTSTR strHFONT hFontfloat z)
{ glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
Printfc3d(“立体汉字“hFontz);
glEnable(GL_LIGHTING);
glEnable(GL_TEXTURE_2D);
}
void CGLFont::Printfc3d(CString strTextHFONT hFontfloat z)
{ HDC hdc = wglGetCurrentDC();
HFONT hOldFont=(HFONT)::Selectobject(hdchFont);
UCHAR * pChar=(UCHAR*)strText.GetBuffer(strText.GetLength());
int nListNum;
DWORD dwChar;
GLYPHMETRICSFLOAT pgmf[1];
glPushMatrix();
for(int i = 0; i < strText.GetLength(); i++)
{ if(IsDBCSLeadByte((BYTE)pChar[i]))
{ dwChar=(DWORD)((pChar[i]<<8)|pChar[i+1]);
i++;
}
else dwChar = pChar[i];
nListNum = glGenLists(1);
wglUseFontOutlines( hdc
dwChar
1
nListNum
0.0f
z
WGL_FONT_POLYGONS
pgmf
);
glCallList(nListNum);
glDeleteLists(nListNum 1);
}
glPopMatrix();
strText.ReleaseBuffer();
::Selectobject(hdchOldFont);
}
////////////////////////////////////////////////////////////////////////
void CGLFont:: settext (float xfloat yCString strHFONT Fontfloat rfloat gfloat b)
{ glLoadIdentity();
glPushAttrib(GL_CURRENT_BIT);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glColor3f(rgb);
glTranslatef(-(420-x)/800(260-y)/600-1.0f);
Printftext (00 strFont);
glEnable(GL_LIGHTING);
glEnable(GL_TEXTURE_2D);
glPopAttrib();
}
void CGLFont:: Printftext (int x int y LPCTSTR lpszTextHFONT hFont)
{ CBitmap bitmap;
BITMAP bm;
SIZE size;
HDC MDC = ::CreateCompatibleDC(0);
Selectobject(MDChFont);
::GetTextExtentPoint32(MDClpszTextstrlen(lpszText)&size);
bitmap.CreateBitmap(size.cx size.cy 1 1 NULL);
HBITMAP oldBmp=(HBITMAP)Selectobject(MDC
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14137 2007-06-04 21:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\BAISCOBJ.CPP
文件 1944 2007-06-04 20:14 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\BAISCOBJ.H
文件 4008 2005-04-10 00:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\GLFont.cpp
文件 779 2005-04-09 17:07 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\GLFont.h
文件 5226 2007-06-04 21:20 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\OpenGL.cpp
文件 889 2007-06-04 21:06 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\OpenGL.h
文件 1233 2005-03-28 21:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\ReadMe.txt
文件 297 2005-03-28 21:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\StdAfx.cpp
文件 1598 2005-04-03 11:30 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\StdAfx.h
文件 545 2005-03-28 21:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.dsw
文件 58368 2007-06-04 20:01 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.ncb
文件 53760 2007-06-04 20:01 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\test.opt
文件 4216 2007-05-19 11:41 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.cpp
文件 4551 2005-04-03 11:50 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.dsp
文件 545 2005-03-28 21:08 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.dsw
文件 148480 2009-08-03 10:03 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.ncb
文件 56832 2009-08-03 10:03 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.opt
文件 2149 2009-08-03 09:57 虚拟环境漫游系统\虚拟环境漫游系统\A08_显示3D模型\显示3D模型.plg
文件 19711 2005-03-26 18:56 虚拟环境漫游系统\虚拟环境漫游系统\include\3DS.CPP
文件 3849 2005-03-26 18:56 虚拟环境漫游系统\虚拟环境漫游系统\include\3DS.H
文件 6051 1999-02-23 18:46 虚拟环境漫游系统\虚拟环境漫游系统\include\anorms.h
文件 3662 2005-01-16 00:33 虚拟环境漫游系统\虚拟环境漫游系统\include\bitmap.h
文件 4921 2005-04-03 23:07 虚拟环境漫游系统\虚拟环境漫游系统\include\explosion.cpp
文件 1365 2005-03-10 23:32 虚拟环境漫游系统\虚拟环境漫游系统\include\explosion.h
文件 3820 2004-09-02 01:01 虚拟环境漫游系统\虚拟环境漫游系统\include\InputSystem.cpp
文件 2393 2002-03-14 08:24 虚拟环境漫游系统\虚拟环境漫游系统\include\InputSystem.h
文件 24900 2005-01-17 14:18 虚拟环境漫游系统\虚拟环境漫游系统\include\md2.cpp
文件 3037 2000-10-15 16:22 虚拟环境漫游系统\虚拟环境漫游系统\include\md2.h
文件 2804 2005-01-05 22:22 虚拟环境漫游系统\虚拟环境漫游系统\include\Particles.cpp
文件 2263 2005-01-16 14:44 虚拟环境漫游系统\虚拟环境漫游系统\include\Particles.h
............此处省略269个文件信息
- 上一篇:JZ2440使用手册
- 下一篇:OpenGL小车三维模型源码.zip
相关资源
- OpenGL小车三维模型源码.zip
- 去除BOM头小工具包含 msvcp71.dll 和 ms
- 标准struts2和mvc写的用户管理
- mvc书店
- 胜利VC86E86D光盘软件
- 基于OpenGL实现俄罗斯方块
- OpenGL简单场景编程
- glui for opengl(glui.h glui32.lib)
- spring mvc官方文档(英文版)
- myRay_Tracer.zip
- opengl画三角形
- High Efficiency Video Coding(HEVC_book)
- devcpp4990setup
- opengl绘制树
- qt opengl(after ver2.1) 渲染 nv12
- 3D Helicopter
- 计算机图形大作业opengl-物联网.rar
- OpenGL安装包.zip
- OpenGl读取obj格式文件
- OpenGL Shading Language (3rd Edition)
- VC实现OpenGL三维绘图
- 单独的VCSELpcb图和ao7800的PCB图带SOT36
- 加班管理系统本人自己写的.net 本人新
- SpringMVC.xmind思维导图 超级详细版
- 压控增益放大器(VCA)模块(VCA810)
- .NET MVC4_登陆验证码
- OpenGL_Nehe(NeHe中文教程)pdf+源码
- OpenGL配置文件
- 智能排班系统Spring+SpringMVC+MyBatis+Pat
- OpenGL安装包
评论
共有 条评论