Предположим, что самолет выглядит так:
Построить "локальную основу" плоскости, используя:
- Ось X параллельна AD / BC
- Ось Y параллельна AB / CD
- Ось Z параллельна нормали
- Происхождение O в центре четырехугольника
Матрица преобразования может быть разбита на 3 компонентов:
1 - Масштаб
Поскольку исходный квад имеет размеры 1x1 единиц, коэффициент масштабирования вдоль локальных осей X и Y представляет собой просто длины сторон, то есть длины AD и AB соответственно. Игнорируйте масштабный коэффициент Z, так как четырехугольник плоский.
Следовательно, составляющая масштабирования определяется как:
2 - Вращение
Компонент вращения может быть непосредственно построен из локальных базисных осей X, Y, Z; каждый вектор (нормализованный) является соответствующим столбцом матрицы.
Следовательно, вращательная составляющая определяется как:
3 - Перевод
Это самый простой; вектор трансляции - это просто абсолютная координата центра квада O и он равен последнему столбцу матрицы.
Поэтому трансляционная составляющая определяется как:
Окончательную матрицу можно получить, умножив вышеприведенное в следующем порядке:
т.е. компоненты применяются в порядке 1 * 2 ⇨ 3 .