c – Qt 4.6.3中QGLWidget上的3D文本
发布时间:2020-12-16 09:29:21 所属栏目:百科 来源:网络整理
导读:我正在寻找一种在QGLWidget上绘制3D文本的简单方法,而不使用FTGL,FreeType,“渲染到纹理”或帧缓冲对象,即仅使用文档化的Qt 4函数,不需要额外的库. 想法? 附: “3D文本”表示字母是平的并且厚度为零,但可以在3D空间中旋转.想想“Star wars opening crawl”
我正在寻找一种在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中实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |