openGL显示三维文字

yuxuan110400 2012-06-05 10:24:07
要实现的是在三维场景中给X、Y、Z坐标画刻度。目前写的一个类只能在一个位置显示三维文字,如何才能在不同的位置显示文字,请告诉指点,下面是这个的代码:
CHzGL::CHzGL()
{
m_iDisplayListStart1 = 1;
m_iDisplayListStart2 = 2000;
}

bool CHzGL::Create(CWnd* pWnd)
{
m_pdc = new CClientDC(pWnd);
//创建TrueType字体,根据实现需要,可用楷体、琥珀等字体
LOGFONT lf;
m_pdc->GetCurrentFont()->GetLogFont(&lf);
lf.lfCharSet=134;
strcpy(lf.lfFaceName, "黑体") ;
fontOpenGL.CreateFontIndirect(&lf);
return true;
}
void CHzGL::RendOpenGlText1(CString str,double X,double Y,double Z)
{
int i=0;
CFont* pOldFont=(CFont*)m_pdc->SelectObject(&fontOpenGL);
// 产生显示列表.
unsigned int j=0;

while(i< str.GetLength())
{
if (IsDBCSLeadByte(str[i]))
{ //判 断 是 否 为 双 字 节
wglUseFontOutlines(m_pdc->m_hDC, // 所选字体的设备描述符
(256+str[i])*256+(256+str[i+1]),// 要转换为显示列表的第一个字符
1, // 转换为显示列表的字符个数
m_iDisplayListStart1+j, // 指定的显示列表基数
0.0,// 指定的最大偏离值,一般为0
0.15f, // 它是立体字体具体表现,Z轴(纵深方向)方向的值
WGL_FONT_POLYGONS,// 显示的字体轮廓线格式,多边形-实心
&m_agmf1[j]); // 接受字符特性
FTextList1[j]=j;
j++;
i++;
i++;
}
else
{
wglUseFontOutlines(m_pdc->m_hDC, // 所选字体的设备描述符
str[i], // 要转换为显示列表的第一个字符
1, // 转换为显示列表的字符个数
m_iDisplayListStart1+j, // 指定的显示列表基数
0.0,// 指定的最大偏离值,一般为0
0.15f, // 它是立体字体具体表现,Z轴(纵深方向)方向的值
WGL_FONT_POLYGONS,// 显示的字体轮廓线格式,多边形-实心
&m_agmf1[j]); // 接受字符特性
FTextList1[j]=j;
i++;
j++;
}
}
if (pOldFont) m_pdc->SelectObject(pOldFont) ;

//输出
glTranslated(X,Y,Z);//字体位置X,Y,字体大小
glScaled(150.0f,150.0f,150.0f);
glListBase(m_iDisplayListStart1);
glCallLists(str.GetLength(),GL_UNSIGNED_BYTE,&FTextList1);

}
...全文
325 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjzkangpeng 2012-06-06
  • 打赏
  • 举报
回复
OpenGL只了解一丁点,帮你顶一下,希望有人可以解决你的问题。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧