OpenGL显示字符问题

一条编程小咸鱼 2018-08-27 09:27:35
利用MFC和OpenGL绘制图形,想要在图形中显示字符,但是运行过后并无字符显示,代码如下:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
wglUseFontBitmaps(wglGetCurrentDC(), 0, 256, 1000);
glListBase(1000);//使得OpengL可以找到绘制对应字符的显示列表的位置。
glColor3f(1.0, 0.0, 0.0);//设置红色
glRasterPos3f(2.7, 0.0,0.0);
glCallLists(5, GL_UNSIGNED_BYTE, ("X/mm"));
glColor3f(0.0, 0.0, 0.0);
glRasterPos3f(0.5,-0.2,0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(1, -0.2, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(1.5, -0.2, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(2.0, -0.2, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(2.5, -0.2, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));

glColor3f(0.0, 1.0, 0.0);
glRasterPos3f(0, 2.7, 0.0);
glCallLists(3, GL_UNSIGNED_BYTE, ("Y/mm"));
glRasterPos3f(-0.2, 0.5, 0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(-0.2, 1, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(-0.2,1.5, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(-0.2,2.0,0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(-0.2,2.5, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));
//视角
glTranslatef(0.0f, 0.0f, -5.0f);
glRotatef(-90, 1.0f, 0.0f, 0.0f);
glRotatef(-135, 0.0f, 0.0f,1.0f);
glRotatef(-45, 1.0f, -1.0f, 0.0f);
glBegin(GL_LINES);
//x2.5
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-2.6, 0.0, 0);
glVertex3f(2.6, 0.0, 0.0);
glVertex3f(2.5, 0.1, 0);
glVertex3f(2.6, 0.0, 0.0);
glVertex3f(2.5, -0.1, 0);
glVertex3f(2.6, 0.0, 0.0);

//y2.5
glColor3f(0.0, 1.0, 0.0);
glVertex3f(0.0, -2.6, 0);
glVertex3f(0.0, 2.6, 0.0);
glVertex3f(0.0, 2.5, 0.1);
glVertex3f(0.0, 2.6, 0.0);
glVertex3f(0.0, 2.5, -0.1);
glVertex3f(0.0, 2.6, 0.0);
//z2
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.0, 0);
glVertex3f(0.0, 0.0, 2.1);
glVertex3f(0.0, 0.1, 2.0);
glVertex3f(0.0, 0.0, 2.1);
glVertex3f(0.0, -0.1, 2.0);
glVertex3f(0.0, 0.0, 2.1);
glEnd();

请问这是什么问题呢,这是在绘制函数中写的代码。
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
//
wglUseFontBitmaps(wglGetCurrentDC(), 0, 256, 1000);
glListBase(1000);//使得OpengL可以找到绘制对应字符的显示列表的位置。
//视角
glTranslatef(0.0f, 0.0f, -8.0f);
glRotatef(-90, 1.0f, 0.0f, 0.0f);
glRotatef(-135, 0.0f, 0.0f,1.0f);
glRotatef(-45, 1.0f, -1.0f, 0.0f);
// red
glColor3f(1.0, 0.0, 0.0);
glRasterPos3f(2.7f, 0.0f,-0.2f);
glCallLists(4, GL_UNSIGNED_BYTE, ("X/mm"));
glRasterPos3f(0.5f,-0.2f,0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(1.0f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(1.5f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(2.0f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(2.5f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));
// green
glColor3f(0.0, 1.0, 0.0);
glRasterPos3f(0, 2.7f, 0.0);
glCallLists(4, GL_UNSIGNED_BYTE, ("Y/mm"));
glRasterPos3f(-0.2f, 0.5f, 0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(-0.2f, 1.0f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(-0.2f,1.5f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(-0.2f,2.0f,0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(-0.2f,2.5f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));
glBegin(GL_LINES);
//x2.5 red
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-2.6f, 0.0, 0);
glVertex3f(2.6f, 0.0, 0.0);
glVertex3f(2.5f, 0.1f, 0);
glVertex3f(2.6f, 0.0, 0.0);
glVertex3f(2.5f, -0.1f, 0);
glVertex3f(2.6f, 0.0, 0.0);

//y2.5 green
glColor3f(0.0, 1.0f, 0.0);
glVertex3f(0.0, -2.6f, 0);
glVertex3f(0.0, 2.6f, 0.0);
glVertex3f(0.0, 2.5f, 0.1f);
glVertex3f(0.0, 2.6f, 0.0);
glVertex3f(0.0, 2.5f, -0.1f);
glVertex3f(0.0, 2.6f, 0.0);
//z2 blue
glColor3f(0.0, 0.0, 1.0f);
glVertex3f(0.0, 0.0, 0);
glVertex3f(0.0, 0.0, 2.1f);
glVertex3f(0.0, 0.1f, 2.0f);
glVertex3f(0.0, 0.0, 2.1f);
glVertex3f(0.0, -0.1f, 2.0f);
glVertex3f(0.0, 0.0, 2.1f);
glEnd();



//视角

另外还想请教您一个问题,怎么设置我显示的文本的大小呢?
  • 打赏
  • 举报
回复
确实是视角先后的原因,谢谢大神一语道破!
schlafenhamster 2018-08-27
  • 打赏
  • 举报
回复

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
//
wglUseFontBitmaps(wglGetCurrentDC(), 0, 256, 1000);
glListBase(1000);//使得OpengL可以找到绘制对应字符的显示列表的位置。
//视角
glTranslatef(0.0f, 0.0f, -8.0f);
glRotatef(-90, 1.0f, 0.0f, 0.0f);
glRotatef(-135, 0.0f, 0.0f,1.0f);
glRotatef(-45, 1.0f, -1.0f, 0.0f);
// red
glColor3f(1.0, 0.0, 0.0);
glRasterPos3f(2.7f, 0.0f,-0.2f);
glCallLists(4, GL_UNSIGNED_BYTE, ("X/mm"));
glRasterPos3f(0.5f,-0.2f,0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(1.0f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(1.5f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(2.0f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(2.5f, -0.2f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));
// green
glColor3f(0.0, 1.0, 0.0);
glRasterPos3f(0, 2.7f, 0.0);
glCallLists(4, GL_UNSIGNED_BYTE, ("Y/mm"));
glRasterPos3f(-0.2f, 0.5f, 0);
glCallLists(2, GL_UNSIGNED_BYTE, ("60"));
glRasterPos3f(-0.2f, 1.0f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("120"));
glRasterPos3f(-0.2f,1.5f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("180"));
glRasterPos3f(-0.2f,2.0f,0);
glCallLists(3, GL_UNSIGNED_BYTE, ("240"));
glRasterPos3f(-0.2f,2.5f, 0);
glCallLists(3, GL_UNSIGNED_BYTE, ("300"));
glBegin(GL_LINES);
//x2.5 red
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-2.6f, 0.0, 0);
glVertex3f(2.6f, 0.0, 0.0);
glVertex3f(2.5f, 0.1f, 0);
glVertex3f(2.6f, 0.0, 0.0);
glVertex3f(2.5f, -0.1f, 0);
glVertex3f(2.6f, 0.0, 0.0);

//y2.5 green
glColor3f(0.0, 1.0f, 0.0);
glVertex3f(0.0, -2.6f, 0);
glVertex3f(0.0, 2.6f, 0.0);
glVertex3f(0.0, 2.5f, 0.1f);
glVertex3f(0.0, 2.6f, 0.0);
glVertex3f(0.0, 2.5f, -0.1f);
glVertex3f(0.0, 2.6f, 0.0);
//z2 blue
glColor3f(0.0, 0.0, 1.0f);
glVertex3f(0.0, 0.0, 0);
glVertex3f(0.0, 0.0, 2.1f);
glVertex3f(0.0, 0.1f, 2.0f);
glVertex3f(0.0, 0.0, 2.1f);
glVertex3f(0.0, -0.1f, 2.0f);
glVertex3f(0.0, 0.0, 2.1f);
glEnd();



//视角

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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