我使用以下代码显示一些简单的文本:
void output(GLfloat x, GLfloat y, char *format,...)
{
va_list args;
char buffer[200], *p;
va_start(args, format);
vsprintf(buffer, format, args);
va_end(args);
glPushMatrix();
glLoadIdentity();
glTranslatef(x, y, -1000);
for (p = buffer; *p; p++)
glutStrokeCharacter(GLUT_STROKE_ROMAN, *p);
glPopMatrix();
}
但我不知道如何更改/指定文字的大小?
或者有更好的方法吗?
答案 0 :(得分:2)
首先,请never use vsprintf。而且我不是故意开始使用iostream或其他东西;我的意思是使用vs n printf。这样,你就不会离开角色阵列的末尾。
其次,您应该使用glutStrokeString
来绘制字符串。
最重要的是,由于GLUT文本呈现代码使用当前矩阵,如果要更改文本的大小,可以使用glScalef
将比例矩阵拖放到矩阵堆栈中。这可能只适用于您正在使用的描边字体。