Умножение матрицы преобразования на вектор - PullRequest
0 голосов
/ 05 ноября 2010

Я сделал серию преобразований, используя glMultMatrix. Как мне умножить вектор (nX, nY, nZ, 1) на матрицу, полученную в результате преобразования? Как мне заставить эту матрицу умножаться на вектор?

pyglet.gl.lib.GLException: invalid operation

Я получаю вышеуказанную ошибку, если использую glMultMatrix. Мне нужно вызвать это умножение между glBegin и glEnd.

1 Ответ

0 голосов
/ 08 ноября 2010

Если я правильно читаю ваш вопрос, вам нужно что-то, что возвращает результат произведения матрицы на вектор между текущей матрицей ModelView / Projection и указанным вектором.

В этом случае 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 и сначала умножить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...