28Mar
No comments
« Математичне завдання прямій на площині |
Вектори в просторі Однорідні координати Матриці перетворень »
MultiplyMatrices(CurrentMatrix, CurrentMatrix, Rot);
old_mouse = new_mouse;
}
Суть цього класу в тому, що він запам’ятовує дії миші. У кожен момент часу є матриця, яка відповідає за поточний стан системи (поворот).
- конструктор Rotation() ініціалізував матрицю як одиничну
- void InitRotation(int x, int у): при натисненні миші ми запам’ятовуємо поточний вектор, вказуючий напрям на точку натиснення. Цей вектор нормалізований (unit()).
- void Rotate(int x, int у): при русі отримуємо вектор, вказуючий на поточне положення миші. За допомогою векторних операцій отримуємо тригонометричні функції кута між цим вектором і вектором, що відповідає за попереднє положення миші. Умножаємо поточну матрицю CurrentMatrix на матрицю повороту, визначувану отриманим синусом і косинусом.
В модуль matrix.cpp додається нова функція:
void SetRotationMatrixbySinCos(double sinalpha, double cosalpha, Matrix &matrix)
{
matrix[0]= cosalpha;
matrix[1]= -sinalpha;
matrix[2]= sinalpha;
matrix[3]= cosalpha;
}
Подивимося на зміни у файлі draw.cpp:
- з’являється нова змінна, що відповідає за клас Rotation:
Rotation *Ball;
- За допомогою функції SetBall встановлюється поточний обробник обертань:
void SetBall(Rotation *_Ball)
{
Ball = _Ball;
}
- До всіх крапок застосовується перетворення, але тепер воно береться з класу Ball:
ApplyMatrixtoPoint(Ball->CurrentMatrix, triangle[i]);
І нарешті, додається обробник миші в основний файл main.cpp:
case WM_LBUTTONDOWN:
Ball->InitRotation(LOWORD(lParam) - Rect.right / 2, HIWORD(lParam) - Rect.bottom / 2);
InvalidateRect(hWnd, NULL, FALSE);
break;
case WM_MOUSEMOVE:
Pages: 1 2 3 4 5
Tags:
вектор,
двомірні простори,
кут,
матриця повороту,
миша,
направлені кути,
порядок векторів,
твір,
функція
Схожі записи
- Вектори в просторі Однорідні координати Матриці перетворень (29.03.2009)
... Однорідні координати - координати, що володіють тією властивістю, що визначуваний ними об'єкт не міняється при множенні всіх координат на одне і те ж число.
Однорідними координатами вектора (х, у, z) є трійка чисел (x', у', z', w), де х = х' / w, у = у' ...
- Математичне завдання прямій на площині (27.03.2009)
... Але разом з тим, хочеться підкреслити, що строге введення даних понять не є тривіальним.
Прим. Поки розглядаються ідеальні геометричні об'єкти, точки яких можуть мати довільні дійсні координати.
Розглянемо як задається пряма лінія.
Рівняння прямої на площині в декартових координатах Ax ...
- Небагато про Photoshop (16.04.2009)
...
За допомогою файлового броузера ви зможете не відкриваючи файлу отримати необхідну інформацію: колірний профіль, дата зміни і дані, записувані цифровими камерами. Саме зображення відображається в іконі.
Новий інструмент Healing Brush (гроно лікування) дозволить видаляти дефекти зображення, зберігаючи текстуру і освітлення.
Розширені веб-функції. Ви зможете миттєво робити елементи веб-сторінки ...
- Закон Ламберта Модель віддзеркалення Фонга Модель віддзеркалення Блінна-фонга (04.04.2009)
...
Хай задано точкове джерело світла, розташоване в деякій крапці, поверхню, яка освітлюватиме і спостерігач. Вважатимемо, що спостерігач точковий. Кожна точка поверхні має свої координати і в ній визначена нормаль до поверхні. Її освітленість складається з трьох компонент: фонове освітлення (ambient), розсіяне світло (diffuse) і складова відблиску (specular).
Властивості джерела визначають потужність випромінювання для ...
- Графічні редактори (09.04.2009)
...
Для роботи програми необхідний GTK+ 2.0.
Paint Shop Pro 11.20
Професійний редактор растрової графіки. Володіє широкими можливостями по обробці графіки, але основний упор направлений на обробку фото. Думаю, що дану програму можна сміливо назвати другим номером після незаперечного лідера в особі ADOBE Photoshop.
Нагадаю, ...
- Введення Звязність Відсікання Перехід до віконних координат (24.03.2009)
...
При цьому розглядаються реальні завдання отрісовки графіки, тому запропоновані алгоритми повинні працювати з прийнятною швидкістю і використовувати різні оптимізації.
Далі, на базі розглянутих методів, будуть построєнни алгоритми заливки фігур.
Зв'язність
Ідеальна математична лінія є нескінченною кількістю крапок, що задовольняють певному рівнянню, або ...
- Освітлення в додатках реального часу Модель освітлення Модель затінювання (31.03.2009)
... Для рендерінга статичних зображень високої якості використовуються дорожчі моделі освітлення, які більше наближені до високоточних фізичних моделей.
Спершу потрібно буде побудувати модель освітлення , по якій можна визначити освітленість в деякій крапці, якщо відомі параметри цієї крапки, спостерігача і джерел світла. У додатках реального часу використовуються полігональні моделі, коли вся ...
- Курси ARCHICAD навчання ARCHICAD архикад (15.03.2009)
...
Вам не доведеться звикати до нових людей, які оточуватимуть Вас на заняттях в групі на звичайних курсах по архикаду. Вам не доведеться звикати до незатишного приміщення комп'ютерного класу. Вам не доведеться миритися з низькою продуктивністю учбового комп'ютера і неможливістю зберігати вправи по ARCHICAD (архикад) на жорсткий диск.
Вам не потрібно буде ...
- Тривимірної 3D графіки (05.04.2009)
... У останньому випадку застосовують найчастіше метод бікубічеськіх раціональних В-сплайнов на нерівномірній сітці (NURBS). Вид поверхні при цьому визначається розташованою в просторі сіткою опорних точок.
Кожній крапці привласнюється коефіцієнт, величина якого визначає ступінь її впливу на частину поверхні, крапки, що проходить поблизу. Від взаємного розташування крапок і величини коефіцієнтів залежить форма і "гладкість" поверхні в цілому. ...
Saturday, March 28th, 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.