Поворот площини за допомогою миші
No comments
Як це зробити. Можна спробувати експериментувати з формулами, але незабаром стане зрозуміло, що треба враховувати не тільки відносні зміни координат Дx, Дy, але і їх абсолютні значення.
Так, наприклад, на приведеному нижче зображенні зміни по x для пересувань миші M0M і M0’M’ співпадають, але інтуїтивно зрозуміло, що одне з цих пересувань обертає трикутник за годинниковою стрілкою, а інше - проти.
Суть прийому полягає в тому, що будується уявне одиничне коло з центром на початку координат і на ній відмірюються початковий і кінцевий кути. Потім проводиться поворот на різницю направлених кутів .
В даному випадку, щоб отримати точки M0’ і M’ треба просто нормалізувати вектори OM0 і OM. Тепер повернемо площину, щоб вектор OM0’ перейшов в OM’. Виявляється це не так просто, як може показатися на перший погляд.
Кут між векторами
…
Поворот площини за допомогою миші →
Математичне завдання прямій на площині
No comments
Поки розглядаються ідеальні геометричні об’єкти, точки яких можуть мати довільні дійсні координати.
Розглянемо як задається пряма лінія.
Рівняння прямої на площині в декартових координатах Ax + By + C = 0
Це рівняння дозволяє задати абсолютно будь-яку пряму на площині. При цьому коефіцієнти A і B можуть звертатися в нуль, але не одночасно:
A2 + B2 > 0
2D теорія craftimage.com.ua Трійка чисел (A, B, C) є однорідними координатами будь-якої прямої площини в двовимірному просторі всіх прямих площини . Однорідні координати в даному випадку надмірні, оскільки пряму можна задати двома числами. Прийняти один з коефіцієнтів A, B або C за одиницю не можна, оскільки можливий варіант рівності вибраного коефіцієнта нулю.
Пропонується вибрати набір, в якому
A2 + B2 = 1, A = B > 0 або A > B
Це …
Математичне завдання прямій на площині →
Аффінноє перетворення і його матричне уявлення
No comments
Прим. Дані координати не дозволяють однозначно задати точку площини. Наприклад, (1, 1, 1) і (2, 2, 2) задають одну і ту ж крапку (1, 1). Пропонується узяти набір (x, у, 1), який описуватиме всі точки площини.
Матриця перетворення для однорідних координат має розмір 3х3. Розглянемо деякі перетворення в однорідних координатах.
Стиснення/розтягування
Це перетворення умножає відповідні координати точок на коефіцієнти масштабування по осях: (x, у) -> (ах * x, ау * у). Матриця перетворення запишеться таким чином:
[ ах 0 0 ]
[ 0 ау 0 ]
[ 0 0 1 ]
Де ах - розтягування по осі x,
ау - розтягування по осі у.
Прим. Можна відмітити, що при негативних значеннях коефіцієнтів стиснення/розтягування відбувається …
Аффінноє перетворення і його матричне уявлення →
Логічна система координат
No comments Також з’являється така річ, як відступ (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) …
Логічна система координат →
Введення Звязність Відсікання Перехід до віконних координат
No comments З’являється законне питання: як визначити зв′язність лінії на екрані?
Традиційно вводяться два поняття зв′язності.
4-связность: піксели p1(x1, y1) і p2(x2, y2) називаються сусідніми, якщо або різниця їх координат по осі x, або різниця їх координат по осі у рівна 1 (або що виключає):
|x2 - x1| + |y2 - y1|
Введення Звязність Відсікання Перехід до віконних координат →

