OpenGL код для отображения простого текста в другом размере? - PullRequest
1 голос
/ 25 июня 2011

Я использовал следующий код для отображения простого текста:

    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 Ответ

2 голосов
/ 25 июня 2011

Во-первых, пожалуйста никогда не используйте vsprintf . И я не хочу начинать использовать iostream или что-то еще; Я имею в виду использовать против n printf. Таким образом, вы не выходите за пределы своего массива символов.

Во-вторых, вы должны использовать glutStrokeString для рисования строки.

Самое главное, поскольку в коде визуализации текста GLUT используется текущая матрица, если вы хотите изменить размер текста, вы можете просто поместить масштабную матрицу в стек матрицы с помощью glScalef. Это, вероятно, работает только с штриховыми шрифтами, которые вы используете.

...