У меня есть ломаная фигура, представленная в виде массива относительных координат точек x
и y
(от 0,0 до 1,0).
Я должен нарисовать фигуру со случайным положением, масштабом и углом поворота.
Как я могу сделать это наилучшим образом?
У меня есть ломаная фигура, представленная в виде массива относительных координат точек x
и y
(от 0,0 до 1,0).
Я должен нарисовать фигуру со случайным положением, масштабом и углом поворота.
Как я могу сделать это наилучшим образом?
Вы можете использовать простое преобразование с матрицей RT.
Пусть X = (x y 1)^t
будут координатами одной точки вашей фигуры. Пусть R
будет 2x2 матрицей вращения, а T
будет вектором перемещения 2x1 преобразования, которое вы планируете сделать . Матрица RT A
будет иметь вид A = [R T;0 0 1]
. Чтобы получить преобразованные координаты точки X, вам нужно сделать это простое вычисление AX = X'
, где X'
— новые координаты. Теперь, чтобы преобразовать всю фигуру, вместо использования одного столбца вы используете матрицу, в которой каждый столбец имеет координату x
в первой строке, y
во второй и 1
в третьей строке.
Конечно, вы можете попробовать использовать функции, предоставляемые OpenCV, как показано в этот урок, или те, которые предназначены для векторов точек вместо целых изображений, но способ, описанный выше, заставляет вас действительно понять, что вы делаете ;)