Матрица поворота в двумерном пространстве
Автор Владимир Кузьмин задал вопрос в разделе Другие языки и технологии
поворот в двумерном пространстве delphi. вопрос внутри ++++ и получил лучший ответ
Ответ от Ringo-chan[гуру]
владимир неужели мой ответ был недостаточно полон? если вы тупо умножите эти координаты на матрицу поворота прямоугольник повернется вокруг начала координат
у вас прямоугольник размерами 20x20. значит координаты его вершин относительно точки пересечения диагоналей
(-10,-10) (-10,10) (10,10) (10,-10)
вот их и нужно умножать на матрицу поворота чтобы получить "наклоненный" прямоугольник
матрица поворота на угол fi против часовой стрелки выглядит так
cos fi -sin fi
sin fi cos fi
берете точки и каждую умножаете на эту матрицу - получите координаты вершин повернутого прямоугольника опять же относительно точки пересечения диагоналей
при построении к каждой точке прибавьте глобальные координаты точки пересечения диагоналей (в вашем примере +(20,20))
может быть вы не знаете как умножать матрицы
Rot(fi) * (x,y) = (x*cos fi - y*sin fi, x*sin fi + y*cos fi)
Ringo-chan
Мудрец
(17774)
--x,y - это координаты одной из четырех точек полигона?
а разве у вас есть другие точки? )
--и это делать с каждой точкой да?
цитировать себя забавно: "берете точки и каждую умножаете на эту матрицу"
вот это тебе поможет: