Python 如何在pyqtgraph中绘制.obj文件?
这行代码呈现一行Python 如何在pyqtgraph中绘制.obj文件?,python,pyqtgraph,Python,Pyqtgraph,这行代码呈现一行 import pywavefront import pyqtgraph.opengl as gl from pyqtgraph.Qt import QtWidgets import numpy as np import sys if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) w = gl.GLViewWidget() xx = 0 yx = 0 zx
import pywavefront
import pyqtgraph.opengl as gl
from pyqtgraph.Qt import QtWidgets
import numpy as np
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = gl.GLViewWidget()
xx = 0
yx = 0
zx = 0
xy = 1
yy = 0
zy = 0
Xdot = (xx, yx, zx)
Ydot = (xy, yy, zy)
pts = np.array([Xdot, Ydot])
sh1 = gl.GLLinePlotItem(pos=pts, width=1, antialias=False)
w.addItem(sh1)
w.show()
app.exec()
如何让pyqtgraph呈现.obj文件?添加下面的行
scene = pywavefront.Wavefront('./mogaze/meshfiles/cup.obj',create_materials=True)
w.addItem(scene)
返回错误
QWindowsContext: OleInitialize() failed: "COM error 0xffffffff80010106 RPC_E_CHANGED_MODE (Unknown error 0x080010106)"
Unimplemented OBJ format statement 's' on line 's 1'
Traceback (most recent call last):
File "draw-human-objects-pred.py", line 137, in <module>
w.addItem(scene)
File "C:\Users\ha_ha\anaconda3\envs\pywavefront\lib\site-packages\pyqtgraph\opengl\GLViewWidget.py", line 64, in addItem
item._setView(self)
AttributeError: 'Wavefront' object has no attribute '_setView'
QWindowsContext:OleInitialize()失败:“COM错误0xFFFFFF80010106 RPC_E_已更改_模式(未知错误0x08010106)”
第1行上未实现的OBJ格式语句“s”
回溯(最近一次呼叫最后一次):
文件“draw human objects pred.py”,第137行,中
w、 附加项(场景)
文件“C:\Users\ha\u ha\anaconda3\envs\pywavefront\lib\site packages\pyqtgraph\opengl\GLViewWidget.py”,第64行,附加项
项目._设置视图(自身)
AttributeError:“波阵面”对象没有属性“\u setView”
我认为它不适合添加到小部件中
下面是我如何加载和显示多维数据集的示例:
这是box-V3F.obj
文件的内容,我在其中注释掉了第s行
:
# Blender v2.78 (sub 0) OBJ File: 'box.blend'
# www.blender.org
mtllib box.mtl
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
usemtl Material
#s off
f 1 2 3 4
f 5 8 7 6
f 1 5 6 2
f 2 6 7 3
f 3 7 8 4
f 5 1 4 8
我对这个库没有太多的经验,但我希望这对您有所帮助。使用
pyqtgraph的GLMeshItem
,但您需要有3个点的顶点
您可以使用pywavefront
加载.obj文件,以获得每个面具有3个顶点的.obj文件。
然后用pyqtgraph加载它。我们在哪里可以找到cup.obj
来复制它?发布悬赏然后不回复评论似乎是一个奇怪的决定。提供帮助将极大地提高您获得有用响应的机会。
# Blender v2.78 (sub 0) OBJ File: 'box.blend'
# www.blender.org
mtllib box.mtl
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
usemtl Material
#s off
f 1 2 3 4
f 5 8 7 6
f 1 5 6 2
f 2 6 7 3
f 3 7 8 4
f 5 1 4 8