将变换矩阵与向量相乘
我使用了glMultMatrix做了一系列的变换。现在我想把一个向量(nX, nY, nZ, 1)和我从变换中得到的矩阵相乘。请问我该怎么把这个矩阵和向量相乘呢?
pyglet.gl.lib.GLException: invalid operation
如果我使用glMultMatrix,就会出现上面的错误。我需要在glBegin和glEnd之间进行这个乘法运算。
1 个回答
0
如果我理解你的问题没错的话,你想要的是一个能返回当前的模型视图/投影矩阵和你指定的向量相乘结果的东西。
在这种情况下,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)
根据你想要做的事情,你可能还需要先获取模型视图矩阵和投影矩阵,然后再把它们相乘。