资源简介
基于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
相关资源
- 如何使用VC和OD调试OCX控件
- VC仿Windows记事本源代码
- SpringMVC文件上传与的实现.rar
- OpenGL参考手册
- Windows异步套接字网络编程
- VC 获得文件属性 获取文件的创建时
- 基于MVC模式的会员管理系统
- silicon lab公司的收音IC SI47XX全套开发工
- 读者写者问题(读者优先,写者优先
- MFC程序-碰撞的小球
- vc 柱形图 CBarChart
- 用vc 写的导线测量,针对刚学测绘的
- 用VC 编写的仿QQ聊天室程序源代码
- 栅栏填充算法源码(VC)
- Qt Creator opengl实现四元数鼠标控制轨迹
- 简单的房屋租赁系统
- .net网站服装销售系统(MVC)
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
-
ob
jectARX给Auto CAD加工具条 - MFC读三维模型obj文件
- blowfish的vc2008工程.rar
- 画图程序MFC/VC/VC CRectTracker 串行化
- capon波束形成算法-VC实现
- 读取串口数据并画实时曲线的VC 程序
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- Delphi实现图像拖动,无延时。
- 利用OpenGL写毛笔字算法
- vc 6.0开发的流程图编辑器
评论
共有 条评论