Конвертация точек полигона из 3D в 2D

У меня есть набор точек (x, y, z), которые лежат на одной плоскости, которая задана точкий и вектором. Как преобразовать эти точки в 2D?


Ответы (1 шт):

Автор решения: Pak Uula

Я полагаю, вектор, который задаёт плоскость - это вектор нормали к плоскости?

Поверните систему координат таким образом, чтобы ось Z стала коллинеарна этому вектору. Тогда в новой системе координат x',y',z' уравнение плоскости будет z' == const

Пусть вектор нормали к плоскости составляет с осью Z угол θ, а его проекция на плоскость XY образует угол φ.

введите сюда описание изображения

Тогда переход от системы координат x,y,z к x',y',z' задаётся матрицей

введите сюда описание изображения

Как выразить эти углы через координаты вектора нормали к плоскости.

Если у вектора нормали к плоскости координаты u,v,w, то обозначим длину этого вектора как R: введите сюда описание изображения

Тогда синусы-косинусы через u,v,w выражаются так: введите сюда описание изображения, введите сюда описание изображения

Сама матрица в терминах u,v,w получается такой:

введите сюда описание изображения

Для вычисления двумерных координат умножьте радиус-вектор (x,y,z) на эту матрицу справа и отбросьте значение Z.

→ Ссылка