Логічна система координат
No comments« Введення Звязність Відсікання Перехід до віконних координат | Аффінноє перетворення і його матричне уявлення »
Ми намалювали трикутник, задавши координати його вершин. У якій системі координат ми узяли їх? Правильна відповідь, у віконній системі координат. Опишемо основні недоліки такого підходу:
- при зміні розмірів вікна розмір зображення залишається тим самим, тим самим порушується логічна картина;
- незручність завдання координат. Нам доведеться весь час прикидати, де знаходитиметься об’єкт на екрані;
- неприродне розташування осей. У Windows використовується система координат, в якій вісь у направлена вниз. При природному порядку малювання, об’єкти будуть намальовані вверх ногами.
Щоб усунути всі ці недоліки використовується логічна система координат. Можна встановити цю систему координат, використовуючи WINAPI, але ми зробимо це уручну.
mustek bear paw 2400 cu plus Є багато способів ввести логічну систему координат. Самий кращий варіант, коли можна самостійно задавати напрям осей, центр координат і інші параметри. Але для простоти ми візьмемо фіксовану систему, як показано на малюнку. Також з’являється така річ, як відступ (margin), або, якщо хочете, поля.
Це зроблено для того, щоб зображення не ’упиралось” в край форми і ми можемо сміливо використовувати весь діапазон координат від -1 до +1 .
Перетворення координат
X_Window = MARGIN + (1.0 / 2) * (X_Log + 1) * (Width - 2 * MARGIN);
Y_Window = MARGIN + (-1.0 / 2) * (Y_Log - 1) * (Height - 2 * MARGIN);
Прослідкуємо ланцюжок перетворень:
- X_Log відповідає [-1; 1]
- X_Log + 1 відповідає [0; 2]
- (1.0 / 2) * (X_Log + 1) відповідає [0; 1]
- (1.0 / 2) * (X_Log + 1) * (Width - 2 * Margin) відповідає [0; Width - 2 * Margin]
- X = Margin + (1.0 / 2) * (X_Log + 1) * (Width - 2 * Margin) відповідає [Margin; Width - 2 * Margin]
Tags: зображення, зростаюча функція, координата, напрям осей, перетворення координат, розмір, система, фон, що виводиться
2D теорія
Схожі записи
Wednesday, March 25th, 2009 at 09:15 and is filed under 2D теорія. You can follow any responses to this entry through the feed. Both comments and pings are currently closed.
