1 / 30

Компьютерная графика Лекция третья

Компьютерная графика Лекция третья. Тема Координаты, примитивы, преобразования. Подготовлено А.А.Пименовым calvrack@googlemail.com Для 4 курса мат.-мех. СПбГУ в 2006. Декартовы и полярные координаты. Декартовы координаты на плоскости и в пространстве Полярные координаты

silas
Download Presentation

Компьютерная графика Лекция третья

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Компьютерная графикаЛекция третья Тема Координаты, примитивы, преобразования Подготовлено А.А.Пименовым calvrack@googlemail.com Для 4 курса мат.-мех. СПбГУ в 2006

  2. Декартовы и полярные координаты • Декартовы координаты на плоскости и в пространстве • Полярные координаты • Цилиндрические координаты • Сферические координаты

  3. Крен, Тангаж, Рыскание крен рыскание тангаж

  4. Способы задания примитивов(Линия и Отрезок)‏ • Две точки • Параметрическое задание • Каноническое представление • Как пересечение плоскостей

  5. Способы задания примитивов(Плоскость)‏ • Три точки • Аналитическое задание • Задание с нормалью

  6. Формулы и операции (векторное произведение)‏

  7. Формулы и операции (смешанное произведение)‏

  8. Пересечения и принадлежность • Параллельные прямые • Скрещивающиеся прямые • Прямая и плоскость

  9. Представление сцены Мировая система кординат • Система координат подсцены Точка

  10. Замена системы координат • Со сдивгом • Без сдвига

  11. Аффинные преобразования Аффиное преобразоване сохраняет параллельность и отношения расстояний

  12. Сдвиг, масштабирование

  13. Поворот

  14. Собственные числа и геометрический смысл • Комплексный оператор в С3 имеет собственное число • Более того имеет 3 собственных числа • Одно из них вещественное… если коэффициенты вещественные • Ось вращения

  15. Перенос

  16. Проективные (однородные) координаты • Точность • Удобство • Возможность представлять несобственные элементы

  17. Обобщенные преобразования • Матрица 4x4

  18. Перспективные преобразования • Общее рассуждения про нижнюю строку матрицы

  19. Как быстро попарно умножать вектора? (x , y ,z ) * (a , b ,c) = ax + by + cz = (x + b) * (y + a) – yx - ab + cz Но xy и ab можно считать заранее... !

  20. Кватернионы Гамильтон

  21. Умножение кватернионов • void MulQuaternions(Quaternion *res, const Quaternion *q1, const Quaternion *q2) • { • float A, B, C, D, E, F, G, H; • A = (q1->w + q1->x) * (q2->w + q2->x); B = (q1->z - q1->y) * (q2->y - q2->z); C = (q1->x - q1->w) * (q2->y + q2->z); D = (q1->y + q1->z) * (q2->x - q2->w); E = (q1->x + q1->z) * (q2->x + q2->y); F = (q1->x - q1->z) * (q2->x - q2->y); G = (q1->w + q1->y) * (q2->w - q2->z); H = (q1->w - q1->y) * (q2->w + q2->z); res->w = B + (-E - F + G + H) * 0.5; res->x = A - ( E + F + G + H) * 0.5; res->y =-C + ( E - F + G - H) * 0.5; res->z =-D + ( E - F - G + H) * 0.5; • }

  22. Матрицы и кватернионы • 1-2y2-2z2  2xy-2wz  2xz+2wy2xy+2wz  1-2x2-2z2  2yz-2wx 2xz-2wy    2yz+2wx  1-2x2-2y2 

  23. Применение кватерниона к вектору

  24. Скалярное произведение 3 умн, 2 сл • Векторное произведение 6 умн, 3 сл • Перемножение двух матриц 3x3 27 умножений и 18 сложений. • Перемножение двух кватернионов 16 умн и 12 сл. или (8+4) умн + 32 сл • Применение кватерниона к вектору • Умножение матрицы на вектор 9 умн + 6 сл • Конвертирование матрицы в кватернион требует 7 сложений и 2 условных перехода. • Конвертирование кватерниона в матрицу требует 16 умножений  15 сложений  и 1 деление. • Конвертирование матрицы вращения в кватернион, умножение на другой кватернион, а затем конвертирование обратно в матрицу потребует  32 умножений 34 сложений  2 условных перехода и 1 деление.

  25. Сферическая линейная интерполяция SLERP(t) =  (p sin((1–t)a) – q sin(ta)) / sin(a) где q и p - кватернионы. t - изменяется от 0 до 1, a - угол между q и p, cos(a) = (q,p)/(|q|*|p|) = (q,p). Выводится исходя из линейной комбинации, единичной длинны и угла При малых углах используют обычную интерполяцию.

  26. Преборазованиенормали

  27. Несколько замечаний • О физике при повороте и кватернионе в степени • О площади многоугольника • о попадании точки в многоугольник • О замене двумерного поворота тремя сдвигами

  28. Links • http://www.gamedev.ru/articles/?id=30129 • http://en.wikipedia.org • http://www.gamedev.ru/users/wat/articles/quaternions • http://www.pm298.ru/ • http://02-07-90327.fizteh.ru/index/kvaternion1/f_otc1

  29. Q&A

  30. Thanks!

More Related