我需要在窗口中打印3行文本作为菜单。
1 - Menu
2 - Pause
3 - Exit
答案 0 :(得分:13)
考虑到您在之前的问题中使用了GLUT,最简单的方法是使用GLUT的内置字体渲染功能。
示例:
void output(int x, int y, float r, float g, float b, int font, char *string)
{
glColor3f( r, g, b );
glRasterPos2f(x, y);
int len, i;
len = (int)strlen(string);
for (i = 0; i < len; i++) {
glutBitmapCharacter(font, string[i]);
}
}
其中font是GLUT字体常量之一:
GLUT_BITMAP_8_BY_13
GLUT_BITMAP_9_BY_15
GLUT_BITMAP_TIMES_ROMAN_10
GLUT_BITMAP_TIMES_ROMAN_24
GLUT_BITMAP_HELVETICA_10
GLUT_BITMAP_HELVETICA_12
GLUT_BITMAP_HELVETICA_18
答案 1 :(得分:2)
This webpage概述了三种可能的方式,以及指向有用的方便库的链接。
没有简单的内置方式来呈现文本,并且(在该页面上详细说明)可能的方法,这取决于您在文本呈现中需要哪些属性,这是一种权衡。
答案 2 :(得分:1)
答案 3 :(得分:1)
答案 4 :(得分:0)
这是在屏幕上书写文本的简单方法:
glColor3f (1.0, 0.0, 0.0);
glRasterPos2f(-240, 120); //define position on the screen
char *string = "Text";
while(*string){
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, *string++);
}