Wie verwende ich glutBitmapString () in C ++ Text auf den Bildschirm zu zeichnen?
Frage
Ich versuche, Text auf den Bildschirm in 2d mit GLUT zu ziehen.
Ich möchte glutBitmapString () verwenden, kann mir jemand ein einfaches Beispiel zeigen, was Sie haben, um Setup zu tun und richtig diese Methode in C ++ verwenden, so kann ich eine beliebige Zeichenfolge in einem (X, Y) Position ziehen?
glutBitmapString(void *font, const unsigned char *string);
Ich verwende Linux, und ich weiß, ich brauche ein Font-Objekt zu erstellen, obwohl ich nicht sicher bin, genau, wie ich es mit der Zeichenfolge als zweites Argument liefern kann. Doch wie gebe ich auch die x / y-Position?
Ein kurzes Beispiel dafür wäre mir sehr helfen. Wenn Sie mich von der Erstellung des Schrift zeigen kann, um die Methode zu nennen, die am besten sein würde.
Lösung
Sie haben benutzen glRasterPos
die Rasterposition zu setzen, bevor glutBitmapString()
aufrufen. Beachten Sie, dass jeder Aufruf glutBitmapString()
die Rasterposition vorrückt, so dass mehrere aufeinanderfolgende Anrufe werden die Saiten nacheinander ausdrucken. Sie können auch die Textfarbe festgelegt, indem Sie glColor()
. Die Menge der verfügbaren Schriftarten werden rel="noreferrer">.
// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the
// screen in an 18-point Helvetica font
glRasterPos2i(100, 120);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render");
Andere Tipps
Hinzufügen von Adams Antwort,
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); //RGBA values of text color
glRasterPos2i(100, 120); //Top left corner of text
const unsigned char* t = reinterpret_cast<const unsigned char *>("text to render");
// Since 2nd argument of glutBitmapString must be const unsigned char*
glutBitmapString(GLUT_BITMAP_HELVETICA_18,t);
Schauen Sie sich https://www.opengl.org/resources /libraries/glut/spec3/node76.html für mehr Schriftoptionen