- 浏览: 13935 次
最新评论
Opengl:显示中文改进版
- 博客分类:
- 技术杂绘
Opengl:显示中文改进版
2010年07月09日
由于对这方面不是特别了解,基本上结合别人的代码,再加些自己认为更好点的改进。
#define MAX_CHAR 255
#define TEXT_CENTER 0
#define TEXT_LEFT 1
#define TEXT_RIGHT 2
HFONT CreateFont(char *facename, int height, int weight, bool italic,bool underline,bool strikeout)
{
LOGFONT lf;
lf.lfHeight = height;
lf.lfWidth = 100;
lf.lfEscapement = 0;
lf.lfOrientation = 0;
lf.lfWeight = weight;
lf.lfItalic = italic;
lf.lfUnderline = underline;
lf.lfStrikeOut = strikeout;
lf.lfCharSet = DEFAULT_CHARSET;
lf.lfOutPrecision = OUT_TT_PRECIS;
lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lf.lfQuality = PROOF_QUALITY;
lf.lfPitchAndFamily = VARIABLE_PITCH | TMPF_TRUETYPE | FF_MODERN;
strcpy(lf.lfFaceName,facename);
// 创建字体
return CreateFont( -24, // 字体的高度
0, // 字体的宽度
0, // 旋转的角度
0, // 定位角度
FW_BOLD, // 字体的粗细
TRUE, // 斜体?
FALSE, // 下划线?
FALSE, // 删除线?
GB2312_CHARSET, // 字符集
OUT_TT_PRECIS, // 输出精度
CLIP_DEFAULT_PRECIS, // 裁减精度
ANTIALIASED_QUALITY, // 输出质量
FF_DONTCARE|DEFAULT_PITCH, // 间距和字体族
"宋体"); // 字体名称
}
struct FONTS // 保存轮廓字体
{
FONTS()
{
val = 0;
}
DWORD val; // 保存显示表的值(用来比较)
GLuint listName; // 保存显示表的名称
GLYPHMETRICSFLOAT gmf; // 保存字体的详细信息
};
void Show2DText(const char *str,SCoor coor,SColor color,int flag,double scale)
{
glDisable(GL_TEXTURE_2D);
DWORD FTextList[MAX_CHAR];
int m_iCount=strlen(str);
static HFONT hFont=0;
static map listmap;
HDC hDC=wglGetCurrentDC();
if(hFont==0)
{
hFont=CreateFont("隶书",800,800,0,0,0);
SelectObject(hDC,hFont);
}
int i=0;
int j=0,k=0;
int ich;
double width =0;
glColor3d(color.r,color.g,color.b);
while(i显示列表的第一个字符
1,//要转换为显示列表的字符数
font.listName,//显示列表的基数
0.0f,//指定与实际轮廓的最大偏移量
0.0,//0.15f,//在Z轴负方向的值
WGL_FONT_POLYGONS, //指定显示列表线段或多边形
&font.gmf);
}
width += listmap[ich].gmf.gmfCellIncX;
}
width*=scale;
switch(flag)
{
case TEXT_CENTER:
width = -width/2;
break;
case TEXT_LEFT:
width = 0;
break;
case TEXT_RIGHT:
width = -width;
break;
default :
width=0;
break;
}
glPushMatrix();
glTranslated(coor.x,coor.y,0);
glPushAttrib(GL_LIST_BIT);
{
glTranslated(width,0,0);
glScaled(scale,scale,1);
for(k=0;k字符
}
}
glPopAttrib();
glPopMatrix();
glEnable(GL_TEXTURE_2D);
}
发表评论
-
vbs脚本:ExplorerSel
2012-01-20 10:01 630vbs脚本:ExplorerSel 2010年08月09日 ... -
PowerDesigner设置MYSQL主键自动增长的方法
2012-01-20 10:01 838PowerDesigner设置MYSQL主键自动增长的方法 ... -
轻量级自动化测试框架解析
2012-01-20 10:01 862轻量级自动化测试框架解析 2010年06月22日 因为工 ... -
基于探测的Script (Event)SCOM 收集规则
2012-01-20 10:01 597基于探测的Script (Event)SC ... -
vbs脚本:CreateFolder
2012-01-20 10:01 420vbs脚本:CreateFolder 2010年08月09日 ... -
VC编译器配置及编译选项
2012-01-19 15:02 721VC编译器配置及编译选 ... -
WinCE驱动开发问题精华集锦
2012-01-19 15:02 550WinCE驱动开发问题精华 ... -
WinCE驱动开发问题精华集锦(一)
2012-01-19 15:02 554WinCE驱动开发问题精华 ... -
用MFC实现DLL文件注册
2012-01-19 15:02 819用MFC实现DLL文件注册 2010年08月05日 ... -
delphi中opengl程序设计
2012-01-17 04:47 515delphi中opengl程序设计 2011年06月07日 ... -
OpenGL编程设置
2012-01-17 04:47 823OpenGL编程设置 13小时前 一.环境配置 由 ... -
转载:OpenGL显示文字
2012-01-17 04:47 700转载:OpenGL显示文字 2010年07月03日 本课 ... -
Android游戏开发(一)
2012-01-17 04:47 741Android游戏开发(一) 2011年03月08日 原 ... -
Vbs脚本应用――打造个性化QQ
2012-01-16 03:39 613Vbs脚本应用――打造个性化QQ 2009年07月16日 ... -
Iisweb.vbs:IIS 网站管理脚本详解(二)
2012-01-16 03:39 790Iisweb.vbs:IIS 网站管理脚本详解(二) 200 ... -
vbs脚本恶搞
2012-01-16 03:39 721vbs脚本恶搞 2009年08月07 ... -
把我最钟爱的脚本语言--vbs 的教程分享给大家--1
2012-01-16 03:39 705把我最钟爱的脚本语言- ... -
使用DevCom和VBS脚本一键开关双网卡
2012-01-16 03:39 1241使用DevCom和VBS脚本一键开关双网卡 2009年10月 ...
相关推荐
使用freetype于opengl显示汉字 改编的东西 :)
OpenGL:雪花飘落代码
Title: Computer Graphics Through OpenGL: From Theory to Experiments, 3rd Edition--true PDF Author: Sumanta Guha Length: 760 pages Edition: 3 Language: English Publisher: Chapman and Hall/CRC ...
OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了
Title: Computer Graphics Through OpenGL: From Theory to Experiments, 3rd Edition--true PDF Author: Sumanta Guha Length: 760 pages Edition: 3 Language: English Publisher: Chapman and Hall/CRC ...
测试环境:xcode13.3 MacPro13-inch2020 M1 OpenGL版本:OpenGL 4.5 语言:c++17 测试图片格式:bmp 建议: 1.先完成xcode配置OpenGL工程环境,网上有教程。...2.本程序支持读取任意分辨率的bmp图片,并显示。
NeHe的OPENGL中文教程:第41课 体… NeHe的OPENGL中文教程:第40课 绳… NeHe的OPENGL中文教程:第39课 物… NeHe的OPENGL中文教程:第39课 物… NeHe的OPENGL中文教程:第38课 从… NeHe的OPENGL中文教程:第...
openGL中文版第7版pdf,最新版中文版本的,因为第8版中文pdf还没有扫描
openGL实例:旋转的箱子 openGL实例:旋转的箱子 openGL实例:旋转的箱子
详细介绍参考我的博客
OpenGL编程指南 第8版 高清 中文 完整版,PDF格式的。是目前网络上最清晰的完整版本。这本书是学习OpenGl的必备资料,非常好的书。 由Khronos小组编写的官方指南,OpenGL领域的权威著作,素有“OpenGL红宝书”美誉...
Qt版的OpenGLDemo,其中包含透视投影,纹理贴图,文字显示,反锯齿。
1:利用 OpenGL 进行点云及直线的显示(同时使用两个着色器); 2:可以实现串口的自动识别及操作; 3:雷达图像的显示(可以实现点云数据及点云距离的同比例缩放及显示); 4:在OpenGL显示部分,相机矩阵与代码中...
win32+opengl 显示中文
opengl
opengl
pengl 中文显示 c++面向对象 opengl编程精粹
OpenGL立体显示示例,含源代码,OpenGL立体显示示例,含源代码