OpenGL代码显示不同大小的简单文本?

时间:2011-06-25 05:53:01

标签: c opengl glut

我使用以下代码显示一些简单的文本:

    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();
}

但我不知道如何更改/指定文字的大小?

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

首先,请never use vsprintf。而且我不是故意开始使用iostream或其他东西;我的意思是使用vs n printf。这样,你就不会离开角色阵列的末尾。

其次,您应该使用glutStrokeString来绘制字符串。

最重要的是,由于GLUT文本呈现代码使用当前矩阵,如果要更改文本的大小,可以使用glScalef将比例矩阵拖放到矩阵堆栈中。这可能只适用于您正在使用的描边字体。