如何在 C++ 中使用 glutBitmapString() 将文本绘制到屏幕上?

发布于 2024-07-14 08:04:51 字数 376 浏览 2 评论 0原文

我正在尝试使用 2d 中的 GLUT 将文本绘制到屏幕上。

我想使用 glutBitmapString(),有人可以向我展示一个简单的示例,说明在 C++ 中设置和正确使用此方法所需执行的操作,以便我可以在 (X,Y) 位置绘制任意字符串吗?

glutBitmapString(void *font, const unsigned char *string); 

我正在使用linux,并且我知道我需要创建一个 Font 对象,尽管我不确定具体如何创建,并且我可以向它提供字符串作为第二个参数。 但是,如何指定 x/y 位置?

一个简单的例子会对我有很大帮助。 如果您能向我展示从创建字体到调用方法的过程,那就最好了。

I'm attempting to draw text to the screen using GLUT in 2d.

I want to use glutBitmapString(), can someone show me a simple example of what you have to do to setup and properly use this method in C++ so I can draw an arbitrary string at an (X,Y) position?

glutBitmapString(void *font, const unsigned char *string); 

I'm using linux, and I know I need to create a Font object, although I'm not sure exactly how and I can supply it with the string as the second arguement. However, how do I also specify the x/y position?

A quick example of this would help me greatly. If you can show me from creating the font, to calling the method that would be best.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨离汐 2024-07-21 08:04:51

您必须在调用之前使用 glRasterPos 设置光栅位置glutBitmapString()。 请注意,每次调用 glutBitmapString() 都会推进光栅位置,因此多次连续调用将依次打印出字符串。 您还可以使用 glColor() 设置文本颜色。 此处列出了可用字体集。

// 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");

You have to use glRasterPos to set the raster position before calling glutBitmapString(). Note that each call to glutBitmapString() advances the raster position, so several consecutive calls will print out the strings one after another. You can also set the text color by using glColor(). The set of available fonts are listed here.

// 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");
软的没边 2024-07-21 08:04:51

添加到 Adam 的答案,

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

请查看 https://www.opengl.org /resources/libraries/glut/spec3/node76.html 了解更多字体选项

Adding to Adam's answer,

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

Check out https://www.opengl.org/resources/libraries/glut/spec3/node76.html for more font options

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文