Как применить преобразование к координатам прямоугольника
Я обнаруживаю объект в своем коде и рисую прямоугольник вокруг него. У меня есть четыре переменные для рисования прямоугольника: X, Y, Ширина и Высота. Я нашел матрицу преобразования, которая должна быть применена к прямоугольнику. Возвращенная матрица преобразования представляет собой матрицу 3*3, например:
Tinv =
1.0022 0.0018 0
-0.0018 1.0022 0
-0.4353 -0.9079 1.0000
Как применить преобразование к прямоугольнику с помощью этой матрицы?
1 ответ
Что вы должны сделать, это вычислить все четыре вершины прямоугольника и затем применить преобразование к каждой отдельной вершине. Это должно быть достаточно легко; если я получу то, что вы пытаетесь сделать, то вы можете использовать что-то вроде следующего:
X = 1;
Y = 2.34;
W = 3.21;
H = 2;
Вершины теперь могут быть (при условии, что (X,Y)
обозначает верхнюю левую вершину вашего прямоугольника с основанием в 0 радиан:
(x1,y1) = (1,2.34)
(x2,y2) = (4.21,2.34)
(x3,y3) = (4.21,0.34)
(x4,y4) = (1,0.34)
Теперь это можно представить как:
[
1.00 2.34 0.00
4.21 2.34 0.00
4.21 0.34 0.00
1.00 0.34 1.00
]
Теперь это может быть преобразовано в соответствии с требованиями простого умножения матриц.