2

一段时间以来,我一直在 openGl 程序中将 GLUT 用于菜单,但很难接受将文本输入 gl 场景的难度。有没有办法使用 GLUT 用于场景内菜单的文本系统?

如果是这样,它是如何完成的?

4

3 回答 3

4

打印鼠标位置的 x 坐标

char gMouseXLoc[25];
void drawString (void * font, char *s, float x, float y, float z){
     unsigned int i;
     glRasterPos3f(x, y, z);

     for (i = 0; i < strlen (s); i++)
          glutBitmapCharacter (font, s[i]);
}

void displayMethodName {
     ...
     drawString(GLUT_BITMAP_HELVETICA_18, gMouseXLoc, 0, 0, 0); 
}

void mouseMotionForGlut(int x, int y){
     double xloc = x;
     sprintf(gMouseXLoc, "%2.15f", xloc);
}
于 2012-04-19T21:18:25.267 回答
2

这里可能还有一些其他的库,例如freeglut(特别是查看字体渲染函数)。或者,编写自己的简单打印字符串的函数应该不会太难。

有关更多选择,请参阅此问题

于 2012-04-19T21:17:33.520 回答
2

如果您可以费心翻译页面和评论,这门课是由我学校的一名学生完成的,而且非常容易使用。基本上你所要做的就是加载你想要使用的字体,然后使用打印功能。2行,效果非常好。我在一些 openGL 应用程序中使用过它,它真的很容易使用。

链接:http: //4.eepp.ca/?p= phont(教程+代码示例,法语)

下载:http: //4.eepp.ca/files/phont-1.zip

附言。它使用 GL.h 和 GLU.h

于 2012-04-20T01:46:44.340 回答