一段时间以来,我一直在 openGl 程序中将 GLUT 用于菜单,但很难接受将文本输入 gl 场景的难度。有没有办法使用 GLUT 用于场景内菜单的文本系统?
如果是这样,它是如何完成的?
打印鼠标位置的 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);
}
如果您可以费心翻译页面和评论,这门课是由我学校的一名学生完成的,而且非常容易使用。基本上你所要做的就是加载你想要使用的字体,然后使用打印功能。2行,效果非常好。我在一些 openGL 应用程序中使用过它,它真的很容易使用。
链接:http: //4.eepp.ca/?p= phont(教程+代码示例,法语)
下载:http: //4.eepp.ca/files/phont-1.zip
附言。它使用 GL.h 和 GLU.h