Я новичок в glm
и пытаюсь преобразовать координаты трехмерного объекта в координаты окна, используя метод glm.project()
в pyqt5 GUI.
Вот код события нажатия кнопки мыши для преобразования трехмерной координаты в координаты окна.
def mousePressEvent(self, event):
self.makeCurrent()
objCoord = glm.vec3(-1,-1,1)
coord = glm.project(objCoord, self.cube['model']*self.cube['view'], self.cube['projection'], glm.vec4(0,0,self.width, self.height))
self.doneCurrent()
print(coord)
Я передаю правильные аргументы.
Здесь вы можете увидеть аргументы, используемые в этом.
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.perspective(glm.radians(45), width / height, 2.0, 100.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)
Я очень расстроен этим.
Кто-нибудь может мне помочь, что не так с этим кодом и что я могу сделать здесь?