使用C ++和OpenGL(使用GLUT)我试图在用户屏幕上显示一些动态文本。我试图显示的文本是计算渲染Mandelbrot集所需的所有内容所花费的时间。
到目前为止,我已成功地这样做了:
std::ostringstream stream;
stream << "Time: " << end_time-start_time;
const std::string& tmp = stream.str();
const char* cstr = tmp.c_str();
strcpy(message, cstr );
int len = (int) strlen(message);
glPushMatrix();
glTranslatef(20.0, 80.0, 0.0);
glScalef(0.1, 0.1, 0.0);
glColor3f(1.0,1.0,1.0);
for (int i = 0; i < len; i++) {
glutStrokeCharacter(GLUT_STROKE_ROMAN, message[i]);
}
glPopMatrix();
由于我不熟悉C ++和OpenGL,我无法找到更简洁的方法来做到这一点,但在我看来,这似乎太复杂了,只能显示一个单一的数据。
你能推荐一种更好或更简单的方法吗?欢迎任何建议或喜剧。
答案 0 :(得分:2)
这可能更简洁(c ++ 11):
void showTime()
{
glPushMatrix();
glTranslatef(20.0, 80.0, 0.0);
glScalef(0.1, 0.1, 0.0);
glColor3f(1.0,1.0,1.0);
for (auto ch : std::to_string(end_time - start_time))
{
glutStrokeCharacter(GLUT_STROKE_ROMAN, ch);
}
glPopMatrix();
}