Python 将变换矩阵乘以向量

Python 将变换矩阵乘以向量,python,opengl,Python,Opengl,我使用glMultMatrix进行了一系列转换。如何将一个向量(nX,nY,nZ,1)乘以变换得到的矩阵?如何使矩阵与向量相乘 pyglet.gl.lib.GLException: invalid operation 如果我使用glMultMatrix,则会出现上述错误。我需要称之为glBegin和glEnd之间的乘法。如果我没有看错你的问题,你需要返回当前模型视图/投影矩阵和你指定的向量之间的矩阵向量积的结果 在这种情况下,OpenGL无法为您执行乘法。相反,您需要提取当前矩阵并自己进行乘法

我使用glMultMatrix进行了一系列转换。如何将一个向量(nX,nY,nZ,1)乘以变换得到的矩阵?如何使矩阵与向量相乘

pyglet.gl.lib.GLException: invalid operation

如果我使用glMultMatrix,则会出现上述错误。我需要称之为glBegin和glEnd之间的乘法。

如果我没有看错你的问题,你需要返回当前模型视图/投影矩阵和你指定的向量之间的矩阵向量积的结果

在这种情况下,OpenGL无法为您执行乘法。相反,您需要提取当前矩阵并自己进行乘法:

import numpy as np
someVector = np.array([2,3,4,5])
glMatrixMode(GL_MODELVIEW)
glMultMatrix(...)
modelViewMatrix = glGetDoublev(GL_MODELVIEW_MATRIX)
result = np.dot(modelViewMatrix, someVector)

根据您尝试执行的操作,您可能需要同时获取ModelView和Projection矩阵并首先将它们相乘。

假设您有两个矩阵A(m x n)和B(p x q),矩阵积[C]=[A]x[B]将是p x q阶;只有当A中的列数等于B中的行数时,该操作才有效,即:n=p。