Python glm.project()函数显示错误,即使参数类型正确

Python glm.project()函数显示错误,即使参数类型正确,python,glm,Python,Glm,我是新来的glm,我正在尝试使用pyqt5 GUI中的glm.project()方法将3d对象坐标转换为窗口坐标 以下是鼠标按下事件将三维坐标转换为窗口坐标的代码 def mousePressEvent(self,event): self.makeCurrent() objCoord=glm.vec3(-1,-1,1) 坐标=glm.project(objCoord,self.cube['model']*self.cube['view'],self.cube['projection'],glm.

我是新来的
glm
,我正在尝试使用pyqt5 GUI中的
glm.project()
方法将3d对象坐标转换为窗口坐标

以下是鼠标按下事件将三维坐标转换为窗口坐标的代码

def mousePressEvent(self,event):
self.makeCurrent()
objCoord=glm.vec3(-1,-1,1)
坐标=glm.project(objCoord,self.cube['model']*self.cube['view'],self.cube['projection'],glm.vec4(0,0,self.width,self.height))
self.doneCurrent()
打印(坐标)
我正在传递正确的论点

在这里,您可以看到此示例中使用的参数

self.cube['model']=glm.mat4(1)
self.cube['view']=glm.lookAt(
glm.vec3(0,0,self.z),
glm.vec3(0,0,0),
glm.vec3(0,1,0)
)
self.cube['projection']=glm.透视图(glm.弧度(45),宽/高,2.0100.0)
但它显示了以下无效参数类型的错误

Traceback (most recent call last):
  File "openglWidget.py", line 147, in mousePressEvent
    glm.project(objCoord, self.cube['model']*self.cube['view'], self.cube['projection'], glm.vec4(0,0,self.width, self.height))
TypeError: invalid argument type(s) for project()
Aborted (core dumped)
我对此感到非常沮丧

有谁能帮我看看这段代码有什么问题,我能在这里做些什么吗?

glm.project()分别使用4个参数vec3()、mat4()、mat4()和vec4()

但是在上面的场景中,第二个和第三个参数不是mat4()的类型,因此必须将这些参数转换为mat4()

可以通过将多维数据集['model']和其他元素逐个复制到4 vec4()变量部分中的mat4()变量,然后将该mat4()变量传递给glm.project()。

glm.project()
分别使用4个参数vec3()、mat4()、mat4()和vec4()

但是在上面的场景中,第二个和第三个参数不是mat4()的类型,因此必须将这些参数转换为mat4()

可以通过将多维数据集['model']和其他元素逐个复制到4 vec4()变量部分中的mat4()变量,然后将该mat4()变量传递给glm.project()来完成