2013-03-26 2 views
2

Я хотел бы рассчитать угол направления от нормального нормального вектора, который имеет nx, ny, nz.вычисление угла наклона от поверхности нормальный (nx, ny, nz)

У меня есть нормальные облака 3D-точек, используя princomp() на Matlab.

Каждая точка имеет нормальный вектор (nx, ny, nz).

Как я могу вычислить угол направления нормального вектора?

Моя конечная цель состоит в том, чтобы отображать цвета изображений в диапазоне, отображаемых в прямом направлении поверхности.

+0

Ваш первый Stack Overflow вопрос! Это написано очень хорошо. Я добавил тег MATLAB. вы. Одна критика: последнее предложение является неграмматическим и немного запутанным для меня. Но кто-то, кто знает больше о MATLAB и точечных облаках, может не иметь этой проблемы. – Ladlestein

ответ

1

Если я не ошибаюсь, угол поворота означает угол поверхности нормальный w.r.t поверхности. (Просьба уточнить, не интерпретирую ли я его неправильно). В этом случае вы можете взять точку на поверхности (или точку, соответствующую нормали поверхности). Пусть точка будет P (px, py, pz) '. Нормаль N (nx, ny, nz) ' Пусть theta - угол b/w нормаль поверхности и точка.

cos (theta) = P.N/| P |. | N |

так в MATLAB,

cos_theta = P»* N/(норма (P) * норма (N)) тета = acosd (cos_theta)