2016-03-07 4 views
0

это, кажется, особенно глупый вопрос, но мне не удалось найти ответ в документации:Применить матрицу преобразования точки помутнения

Как я могу применить матрицу преобразования (и вращение вокруг оси) до точки облака, т. е. каждой точке облака.

Заранее спасибо.

+1

Покажите нам, что вы пытались –

+0

Возможно, используя только матричное умножение –

ответ

0

Вы можете использовать умножение матрицы. Если матрица преобразования является матрицей 4x4, вы Виль должны раздуть ваши очки с 1.

T = [1, 0, 0, 0; 0, 1, 0, 0; 0, 0, 1, 0; 0, 0, 0, 1]; 
P1 = [1; 2; 3]; 
P2 = T * [P1; 1]; 

Если вы хотите применить преобразование ко всему облаку вам придется использовать клетки. Если вы хотите сделать это быстро, попробуйте this библиотека

+0

MATLAB (по крайней мере, для 'affine3d') использует соглашение умножения точки на матрицу преобразования:' р * T'. См. Http://www.mathworks.com/help/images/ref/affine3d-class.html#properties. Зачем вам нужно использовать массив ячеек для преобразования нескольких точек? Умножение массива «n x 4» точек на матрицу преобразования должно быть достаточным, правильным? – beaker

Смежные вопросы