Я занимаюсь рефакторингом графической программы, которая показывает чертеж.Программа использует свое собственное преобразование, и код довольно сложный.Вместо этого я хотел бы изменить код с помощью матрицы преобразования.
Координаты окна и вида - X вправо и Y вниз.
Рисунок в окне использует верхнюю левую точкув качестве базовой точки (0,0).Представление представляет собой область прямоугольника экрана с базовой точкой (0,0) также в верхней левой точке.
Область просмотра может отображаться любым прямоугольником на экране.Это показывает рисунок в области 80% x80%, оставляя некоторые поля вокруг.
Размер чертежа имеет ширину х высоту.Программа должна показывать чертеж с одинаковым масштабным соотношением в обоих направлениях.Центр рисунка сопоставляется с центром области просмотра.чертеж можно повернуть на любой угол от 0 до 360 градусов.
Какова общая матрица преобразования для этого, учитывая следующие данные:
- ширина и высота чертежа
- Угол поворота
- ширина и высота зоны обзора
- Поля вокруг рисунков