Вы должны выразить остальные точки в виде двух выбранных векторов и источника.
Я бы сделал что-то вроде этого:
Выберите 3 3D-точки с соответствующими точками УФ:
- A (x, y, z, u, v)
- B (x, y, z, u, v)
- C (x, y, z, u, v)
Затем, используя координаты x, y, z, мы хотим выразить данную трехмерную точку D как:
D = A + альфа (B - A) + бета (C - A) + гамма (B - A) X (C - A)
У нас есть 3 уравнения для x, y, z, X - перекрестное произведение, и альфа, бета, гамма - этонеизвестно.Мы хотим, чтобы это создало линейную связь между uv и xyz.
Вычислите W = (B - A) X (C - A), нам нужно решить:
Dx - Ax = alpha. (Bx-Axe) + бета. (Cx-Axe) + гамма.Wx
Dy - Ay = альфа. (By-Ay) + бета. (Cy-Ay) + гамма.Wy
Dz - Az = альфа. (Bz-Az) + бета. (Cz-Az) + гамма.Wz
Вычислить обратную матрицу матрицы M с помощью , этот метод :
| (Bx-Ax) , Cx-Ax , Wx |
M = | (By-Ay) , Cy-Ay , Wy |
| (Bz-Az) , Cz-Az , Wz |
Мы называем матрицу результатов N, обратите внимание, что она не зависит от D.
Затем вычисляем альфа, бета, гамму для D:
(альфа, бета), гамма) = N. (DA)
Затем вычислите u, v для D:
Du = Au + альфа (Bu - Au) + бета (Cu - Au)
Dv = Av + альфа (Bv - Av) + бета (Cv - Av)
гамма не используется, так как это расстояние между D и плоскостью (A, B, C) 3D.