【发布时间】:2021-11-01 08:16:47
【问题描述】:
在 C++ 中,我可以像这样找到一个点的当前位置:
glm::vec3 somePoint(x,y,z); //x,y,z are some float values
glm::mat4 translationMatrix = glm::translate(glm::mat4(1.0f), glm::vec3(xTrans, yTrans, zTrans));
glm::vec4 currentPointPosition = translationMatrix*glm::vec4(somePoint,1);
如何在 Python 中进行相同的计算以得到 curretPointPosition?我可以使用 Python 的 pyrr 吗?
在 PyOpenGL 中,我有以下代码:
somePoint = [x,y,z]
translationMatrix= pyrr.matrix44.create_from_translation(pyrr.Vector3([xTrans, yTrans, zTrans]))
currentPointPosition = ?
【问题讨论】:
-
可以通过将 (x,y,z,1) 点转换为 NP 数组并将 translationMatrix 保持为 pyrr 来完成。然后像这样的点积:currentPointPosition = currentPointPosition.dot(translationMatrix)。我更喜欢@Rabbid76 的答案,因为我可以将 GLM 用于 C++,将 PyGLM 用于 Python。