我已经在openGl程序中使用GLUT作为菜单了一段时间了,但很难接受它很难将文本放入gl-scene中。有没有办法使用GLUT用于场景内菜单的文本系统?
如果是这样的话怎么办?
答案 0 :(得分: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);
}
答案 1 :(得分:2)
此处可能还有一些其他库,例如freeglut(特别是font rendering functions)。或者,编写一个只打印字符串的函数应该不会太难。
有关更多替代方案,请参阅this question。
答案 2 :(得分:2)
如果您可以费心翻译页面和翻译评论,这个课程是由我学校的学生完成的,而且非常容易使用。基本上,您只需加载要使用的字体,然后使用打印功能。 2条线,效果非常好。我在一些openGL应用程序中使用它,它非常容易使用。
链接:http://4.eepp.ca/?p=phont(教程+代码示例,法语)
下载:http://4.eepp.ca/files/phont-1.zip
聚苯乙烯。它使用GL.h和GLU.h