我有一个显示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,并将字符缩放为这些尺寸。但是,我真的不知道如何做到这一点。我在互联网上找到了一些教程,但它们似乎都依赖于外部库;由于种种原因,我不能使用任何外部库。
有没有简单的方法来实现这一目标?我知道还有笔画字体可用,但我仍然不知道如何完成适当的缩放。