Попытка вычислить наклон плоскости по нормали

У меня есть набор трехмерных векторов нормалей для точек на трехмерной сетке, и мне нужно вычислить наклон области под каждым из них. Я понятия не имею, как это сделать. Мне не нужен наклон X или Y, мне просто нужен общий наклон рассматриваемой точки (хотя, честно говоря, я не знаю, как получить общий уклон из наклона X и Y по отдельности, что является частью моей проблемы ). Я видел эту статью, но я не мог понять орла или решки этого... Векторы обращены наружу. Если кто-нибудь может объяснить мне это, я был бы очень благодарен.


person J.Swersey    schedule 21.05.2013    source источник


Ответы (1)


Если у вас уже есть вектор нормали, вы почти у цели. Теперь вам нужен угол (ищите скалярное произведение) между нормалью и вертикальной линией. (что именно означает vertical, зависит от вашего приложения).

Если ваши векторы нормалей на самом деле нормализованы (имеют длину 1), а вертикаль равна (0 0 1), косинус угла наклона представляет собой просто координату z вектора нормали.

Чтобы продемонстрировать это: возьмите ручку и оставьте ее на столе. Это нормальный вектор вашей таблицы. Угол между этим вектором и вертикальной линией равен нулю, так как ваш стол вообще не имеет наклона. Если вы наклоните стол на определенную величину, угол между нормалью и вертикальной линией увеличится на ту же величину.

person Christoph    schedule 21.05.2013
comment
Мои векторы нормализованы. По крайней мере, они должны быть, если предположить, что я не нарушил предыдущий шаг (учитывая мою работу на этой работе до сих пор, это тоже не данность, но мы будем работать с этим). Итак, чтобы получить угол наклона, мне нужно что-то вроде этого - person J.Swersey; 21.05.2013
comment
нет, координата z является косинусом, поэтому вам нужно взять арккосинус z - person Christoph; 21.05.2013
comment
Как вы могли бы применить это, чтобы получить не наклон по оси Z, а угол x/y в градусах по компасу? - person Fra; 21.09.2017