在GLviewwidget中添加文本,比如数字之类的

最近有个需求,想要在GLviewwidget里面的指定三维位置添加文本,但是找到的版本都太老久了,或者用的是open3d实现的,在实际中的应用效果并不是很好。因此自己就写了一个,代码如下:

plot = gl.GLTextItem(pos=(int(x), int(y), int(z)),text = str(i+2))
plot.setData()
Form_lianjieban.openGLWidget.addItem(plot)

其中gl是pyqtgraph.opengl,openGLWidget是使用的GLviewwidget,千万注意如果不加pos信息,那么plot是固定的不会旋转的。
除了上述信息之外,还要再加一个相机的位置信息,否则无法显示:

Form_lianjieban.openGLWidget.setCameraPosition(QtGui.QVector3D(pos_view[0],pos_view[1],pos_view[2]))

主要就是setCameraPosition这个函数,里面的三个参数,可以是点云的中心,也可以自己输入一下。
最后来看一下效果吧:
在这里插入图片描述
上文中的白色即是标注,在每个孔洞中放置一个标签。

需要注意的是,如果有多个窗口,可能会出现bug:

OpenGL.error.GLError: GLError(
        err = 1281,
        description = b'\xce\xde\xd0\xa7\xd6\xb5',
        baseOperation = glUseProgram,
        cArguments = (3,)
LScatterPlotItem object at 0x000001AA9AA72CA0>.

这时候只有关闭了重新开始就可以。bug产生的原因众说纷纭,总结来说就是因为不同的窗口同时打开导致冲突了。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值