在OpenGL应用程序中缩放2d文本

时间:2016-09-23 17:55:00

标签: opengl glut

我有一个显示2D网格的OpenGL应用程序。我希望能够用字母标记网格中的每个单元格。

现在我使用基于this answer的代码在每个单元格上绘制文字:

void drawLetter(double x, double y, double win_w, double win_h, char c) {
  glMatrixMode(GL_PROJECTION);
  glPushMatrix();
  glLoadIdentity();
  gluOrtho2D(0.0, win_w, 0.0, win_h);

  glMatrixMode(GL_MODELVIEW);
  glPushMatrix();
  glLoadIdentity();

  glColor3f(1.0, 1.0, 0.0); // Green

  glRasterPos2i(x, y);

  void * font = GLUT_BITMAP_8_BY_13;
  glutBitmapCharacter(font, c);

  glMatrixMode(GL_MODELVIEW);
  glPopMatrix();

  glMatrixMode(GL_PROJECTION);
  glPopMatrix();
}

我遇到的问题是网格中的单元格比这个字体大得多。我希望缩放字母以填充整个单元格。理想情况下,我想以窗口单位指定x,y,width和height,并将字符缩放为这些尺寸。但是,我真的不知道如何做到这一点。我在互联网上找到了一些教程,但它们似乎都依赖于外部库;由于种种原因,我不能使用任何外部库。

有没有简单的方法来实现这一目标?我知道还有笔画字体可用,但我仍然不知道如何完成适当的缩放。

0 个答案:

没有答案