将变换矩阵乘以向量

时间:2010-11-05 01:26:08

标签: python opengl

我使用glMultMatrix完成了一系列转换。如何将矢量(nX,nY,nZ,1)乘以转换中的矩阵?如何将该矩阵与向量相乘?

pyglet.gl.lib.GLException: invalid operation

如果我使用glMultMatrix,我会遇到上述错误。我需要在glBegin和glEnd之间调用这个乘法。

1 个答案:

答案 0 :(得分:0)

如果我正确地阅读你的问题,你想要的东西能够在当前的ModelView / Projection矩阵和你指定的矢量之间返回Matrix-vector产品的结果。

在这种情况下,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矩阵并将它们相乘。