Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pyqtgraph中绘制.obj文件?_Python_Pyqtgraph - Fatal编程技术网

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