c – Qt 4.6.3中QGLWidget上的3D文本

c – Qt 4.6.3中QGLWidget上的3D文本,第1张

概述我正在寻找一种在QGLWidget上绘制3D文本的简单方法,而不使用FTGL,FreeType,“渲染到纹理”或帧缓冲对象,即仅使用文档化的Qt 4函数,不需要额外的库. 想法? 附: “3D文本”表示字母是平的并且厚度为零,但可以在3D空间中旋转.想想“Star wars opening crawl” – 位于3D空间中的扁平字母.另外,我已经知道我可以编写我的文本渲染类,它将字形渲染到纹理等等 我正在寻找一种在QGLWidget上绘制3D文本的简单方法,而不使用FTGL,FreeType,“渲染到纹理”或帧缓冲对象,即仅使用文档化的Qt 4函数,不需要额外的库.

想法?

附: “3D文本”表示字母是平的并且厚度为零,但可以在3D空间中旋转.想想“Star wars opening crawl” – 位于3D空间中的扁平字母.另外,我已经知道我可以编写我的文本渲染类,它将字形渲染到纹理等等.我正在寻找一种简单的方法来使用标准的Qt 4函数做同样的事情.例如,QPainter可能在内部访问所有必需的数据.

解决方法 发现了什么.

QPainterPath path;gldisable(GL_liGHTING);QFont Font("Arial",40);path.addText(QPointF(0,0),QFont("Arial",40),QString(tr("This is a test")));QList<QpolygonF> poly = path.toSubpathpolygons();for (QList<QpolygonF>::iterator i = poly.begin(); i != poly.end(); i++){    glBegin(GL_liNE_LOOP);    for (QpolygonF::iterator p = (*i).begin(); p != i->end(); p++)        glVertex3f(p->rx()*0.1f,-p->ry()*0.1f,0);    glEnd();}glEnable(GL_liGHTING);

但看起来我仍然需要2D三角测量仪.
– 编辑 –

到目前为止,我没有找到任何其他方法来仅使用Qt渲染3D文本,并且在库中没有三角测量例程.我假设此功能尚未在Qt中实现.

总结

以上是内存溢出为你收集整理的c – Qt 4.6.3中QGLWidget上的3D文本全部内容,希望文章能够帮你解决c – Qt 4.6.3中QGLWidget上的3D文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存