Я работаю над компьютерной графикой и не могу найти решение одной проблемы:
У меня есть три точки в трехмерном пространстве, каждая из которых определена с помощью (x, y, z) tupple.Три точки вместе образуют треугольник.Пусть имена точек будут A, B и C, поэтому треугольник - это ABC.
Теперь я хотел бы сформировать ограничивающий прямоугольник так, чтобы AC был одной из сторон.и точка B лежит на противоположной стороне прямоугольника.Теперь я хочу отобразить произвольную точку (p) внутри прямоугольника на нормализованные координаты UV, поэтому:
- U представляет, как далеко проекция точки p на вектор AC находится от A.
- V представляет ортогональную часть прямоугольника.Немного сложно объяснить, но посмотрите на картинку.
Во всяком случае, я думаю, что мне хорошо найти U:
vec3 AC = vec3(C - A);
vec3 Ap = vec3(p - A);
float u = dot(Ap, AC)/dot(AC, AC);
Но я не могу понять, какнайти V. Поскольку я использую GLSL, более чем приветствуется, если в ответе будут использоваться матричные элементы, такие как точка, крестик или что-нибудь, что есть в GLSL.
Уточняющая картинка