Применение теории матриц в компьютерной графике - Программирование, компьютеры и кибернетика научная работа
![](/file/c17a668ccb7333e986a5a.jpg)
Главная
Программирование, компьютеры и кибернетика
Применение теории матриц в компьютерной графике
Понятие и сущность матрицы. Правила выполнения операций над матрицами. Матричное представление преобразований, составные преобразования. Аффинное преобразование и его матричное представление. Для чего нужна трехмерная графика. Набор библиотек DirectX.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ЧУВАШСКОЙ РЕСПУБЛИКИ
СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ЧЕБОКСАРСКИЙ ТЕХНИКУМ СВЯЗИ И ИНФОРМАТИКИ»
МИНИСТЕРСТВА ОБРАЗОВАНИЯ И МОЛОДЁЖНОЙ ПОЛИТИКИ ЧУВАШСКОЙ РЕСПУБЛИКИ
НАУЧНО-ПРАКТИЧЕСКАЯ КОНФЕРЕНЦИЯ СТУДЕНТОВ
Тема: Применение теории матриц в компьютерной графике
Автор - Лисицын Виктор Валерьевич, 2 курс, гр.ПКС-1-14
Научный руководитель -Захарова Тамара Ивановна
Матричное представление преобразований
Аффинное преобразование и его матричное представление
Для чего же нужна трехмерная графика?
Матрица - довольно многозначное слово, которое пришло в нашу речь из немецкого языка. Это слово можно встретить в сфере математики, техники и электроники и даже в сфере киноиндустрии. Но сейчас не об этом. Итак, что же такое матрица?
В математике термин "матрица" обозначает математический объект, который представляет собой прямоугольную таблицу, состоящую из целых или дробных чисел. По сути дела, это совокупность строк и столбцов, на пересечении которых располагаются элементы матрицы. Размер матрицы определяется как раз количеством строк и столбцов. Для чего нужны матрицы в математике? В основном они применяются для удобного и компактного расположения систем линейных уравнений. При такой записи количество строк матрицы будет равно количеству уравнений в системе, а столбцы будут соответствовать неизвестным. Таким образом упрощается поиск неизвестных. С матрицами можно производить алгебраические операции: умножение, сложение, умножение на матрицу вектора и на скаляр.
Мамтрица -- математический объект, записываемый в виде прямоугольной таблицы чисел и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами.
Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений.
Обычно матрицу обозначают заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями "||…||").
Числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой.
У каждого элемента матрицы есть 2 нижних индекса () -- первый «i» обозначает номер строки, в которой находится элемент, а второй «j» -- номер столбца. Говорят матрица размерности подразумевая, что в матрице n строк и m столбцов.
Матрица mЧn -- это набор чисел, распределенных по m строкам и по n столбцам. На приведенном ниже рисунке изображены различные матрицы.
Две матрицы одинакового размера можно складывать путем складывания соответствующих элементов матриц. На приведенном ниже рисунке показано два примера сложения матриц.
Матрицу размера mЧn можно умножить на матрицу размера nЧp, в результате чего получится матрица размера mЧp. Число столбцов в первой из перемножаемых матриц должно совпадать с числом строк во второй из перемножаемых матриц. Например, матрицу размером 4Ч2 можно умножить на матрицу размером 2Ч3, в результате чего получится матрица размером 4Ч3.
Точки на плоскости, а также строки и столбцы матрицы можно рассматривать как векторы. Например, (2, 5) -- это вектор из двух компонентов, а (3, 7, 1) -- это вектор из трех компонентов. Скалярным произведением двух векторов называется число, получаемое по следующим правилам:
(a, b, c) * (d, e, f) = ad + be + cf
Например, скалярное произведение векторов (2, 3) и (5, 4) равно (2)(5) + (3)(4) = 22. Скалярное произведение векторов (2, 5, 1) и (4, 3, 1) равно (2)(4) + (5)(3) + (1)(1) = 24. Обратите внимание, что скалярное произведение векторов -- это число, а не вектор. Также обратите внимание, что скалярное произведение двух векторов можно вычислить, только если у этих векторов одинаковое количество компонентов.
Обозначение A(i, j) соответствует элементу матрицы A, расположенному на пересечении i-ой строки и j-го столбца. Например, запись A(3, 2) обозначает элемент матрицы A, расположенный на пересечении 3-ей строки и 2-го столбца. Предположим, что A, B и C -- это матрицы, причем AB = C. Элементы матрицы C вычисляются следующим образом:
C(i, j) = (i-я строка A) * (j-й столбец B)
На приведенном ниже рисунке показано несколько примеров перемножения матриц.
Если рассматривать точки на плоскости в качестве матриц размером 1Ч2, эти точки можно подвергать преобразованиям, умножая их матрицы на матрицу размером 2Ч2. На приведенном ниже рисунке изображены результаты применения различных преобразований к точке с координатами (2, 1).
Все преобразования, показанные на приведенном ранее рисунке, являются линейными преобразованиями. Некоторые другие преобразования, такие как сдвиг, не являются линейными и не могут быть осуществлены путем умножения на матрицу размером 2Ч2. Предположим, что нужно взять точку с координатами (2, 1), повернуть ее на 90 градусов относительно начала координат, сдвинуть на 3 единицы вдоль оси X и на 4 единицы вдоль оси Y. Такое преобразование можно выполнить путем выполнения умножения и сложения матриц.
Линейное преобразование (умножение на матрицу размером 2Ч2) и сдвиг (прибавление матрицы размером 1Ч2), вместе называются аффинным преобразованием. Альтернативой заданию аффинного преобразования через пару матриц (одна для линейного преобразования и одна для сдвига) является запись всего преобразования в виде одной матрицы размером 3Ч3. Чтобы можно было использовать такие матрицы преобразований, точки плоскости нужно хранить в виде матриц размером 1Ч3, с фиктивной третьей координатой. Обычно третью координату делают равной 1. Например, точка с координатами (2, 1) представляется матрицей [2 1 1]. На приведенном ниже рисунке представлен пример аффинного преобразования (поворот на 90 градусов; сдвиг на 3 единицы по оси X и на 4 единицы по оси Y), заданного умножением на матрицу размером 3Ч3.
В предыдущем примере точка (2, 1) преобразуется в точку (2, 6). Обратите внимание, что третий столбец матрицы размером 3Ч3 содержит числа 0, 0, 1.Такие значения обязательны для всех матриц размером 3Ч3, задающих аффинные преобразования. Смысловую нагрузку несут только шесть чисел в первом и втором столбцах матрицы преобразования. Верхняя левая часть матрицы размером 2Ч2 задает линейную часть преобразования, а первые два числа в третьей строке матрицы задают сдвиг.
Интерфейс GDI+ позволяет хранить аффинные преобразования в объекте Matrix. Так как третий столбец матрицы, задающей аффинное преобразование, всегда равен (0, 0, 1), при создании объекта Matrix нужно задавать только шесть чисел в первых двух столбцах. Инструкция Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) создает матрицу, изображенную на приведенном выше рисунке.
Составным преобразованием называется серия последовательно применяемых преобразований. Рассмотрим следующие матрицы и преобразования:
Масштабирование по оси X с коэффициентом 2.
Если взять матричное представление для точки с координатами (2, 1) -- [2 1 1] -- и последовательно умножить его на матрицу A, затем на B, а затем на C, точка (2, 1) последовательно подвергнется трем соответствующим преобразованиям.
Вместо того чтобы хранить три части составного преобразования в отдельных матрицах, можно перемножить матрицы A, B и C и получить одну матрицу размером 3Ч3, содержащую все составное преобразование. Предположим, что ABC = D. Тогда точка, умноженная на матрицу D, подвергается тем же преобразованиям, что и после последовательного умножения на матрицы A, B и C.
На приведенном ниже рисунке показаны матрицы A, B, C и D.
Тот факт, что матрица составного преобразования может быть создана путем перемножения отдельных матриц преобразования, означает, что любая последовательность аффинных преобразований может быть задана одним объектом Matrix.
Порядок применения (перемножения) матриц преобразования имеет значение. В общем случае поворот, затем масштабирование и затем сдвиг производят преобразование, отличное от того, которое получается после применения масштабирования, затем поворота и затем сдвига. Поэтому важное значение имеет порядок, в котором перемножаются матрицы. В общем случае ABC не равно BAC.
Класс Matrix содержит несколько методов для составных преобразований: Multiply, Rotate, RotateAt, Scale, Shear и Translate. В приведенном ниже примере демонстрируется создание матрицы составного преобразования, реализующей поворот на 30 градусов, затем масштабирование вдоль оси Y с коэффициентом 2 и сдвиг на 5 единиц вдоль оси X.
На приведенном ниже рисунке изображена полученная матрица.
Мы можем переместить вектор (x, y, z, 1) на px единиц по оси Х, py единиц по оси Y и pz единиц по оси Z умножив его на следующую матрицу:
Перемещение на 12 единиц по оси X и на -10 единиц по оси Y
Для создания матрицы перемещения в библиотеке D3DX используется следующая функция:
FLOAT x, // Количество единиц для перемещения по оси X
FLOAT y, // Количество единиц для перемещения по оси Y
FLOAT z // Количество единиц для перемещения по оси Z
Поворот на 30 градусов против часовой стрелки вокруг оси Z
Используя приведенные ниже матрицы мы можем повернуть вектор на ц радиан вокруг осей X, Y или Z. Обратите внимание, что если смотреть вдоль оси вращения по направлению к началу координат, то углы измеряются по часовой стрелке.
Для создания матрицы вращения вокруг оси X в библиотеке D3DX используется следующая функция:
FLOAT Angle // Угол поворота в радианах
Для создания матрицы вращения вокруг оси Y в библиотеке D3DX используется следующая функция:
FLOAT Angle // Угол поворота в радианах
Для создания матрицы вращения вокруг оси Z в библиотеке D3DX используется следующая функция:
FLOAT Angle // Угол поворота в радианах
Инверсией матрицы вращения R является результат транспонирования этой матрицы: RT = R-1. Такие матрицы называются ортогональными.
Мы можем масштабировать вектор с коэффициентом qx по оси Х, коэффициентом qy по оси Y и коэффициентом qz по оси Z, умножив его на следующую матрицу:
Масштабирование с коэффициентом 1/2 по оси X и коэффициентом 2 по оси Y
Для создания матрицы масштабирования в библиотеке D3DX используется следующая функция:
FLOAT sx, // Коэффициент масштабирования по оси X
FLOAT sy, // Коэффициент масштабирования по оси Y
FLOAT sz // Коэффициент масштабирования по оси Z
матрица операция трехмерный графика
DirectX (от английского direct -- прямой, непосредственный) -- это набор библиотек, разработанных компанией Microsoft для создания наиболее эффективных мультимедиа-приложений под операционную систему Windows. Этот набор библиотек активно используется при программировании компьютерных игр, симуляторов, некоторых научных пакетов и некоторых программ создания 3д-графики.
Библиотеки DirectX обычно устанавливаются вместе с операционной системой Windows, в момент её инсталляции на компьютер. Но лучше, всё же, самостоятельно обновлять их, скачивая с сайта, поскольку DirectX обновляется значительно чаще, чем выходят новые дистрибутивы операционной системы и потому желательно всегда иметь обновлённую версию - часто она не только работает быстрее, но и устраняет некоторые, ране наблюдавшиеся проблемы (баги, несовместимости с оборудованием и так далее).
Трёхмерная (или 3D-) графика применяется далеко не только для увеличения кассовых сборов в кино, но и в бизнесе. Её можно встретить в любых презентационных материалах -- будь то сайт или каталог, где необходимо продемонстрировать покупателям будущие интерьеры, либо внешний вид разрабатываемых продуктов, показать инвесторам как то или иное строение будет смотреться в городском ландшафте. И список далеко не полный.
Процесс создания трёхмерной графики соединяет в себе как создание художественных образов, так и математическое моделирование. Так, первым этапом в этом процессе разработки изображения является создание модели объектов и их размещения. Затем к объектам применяется компьютерная визуализация (или рендеринг) , подразумевающая появление на изображении самих объектов в соответствии с выбранными физическими моделями. После этого дизайнер дорабатывает детали и проводит нюансировку чтобы добиться максимальной фотографичности изображения -- и в лучших работах им это удаётся.
Учитывая сложность технологических процессов создания трёхмерной графики сроки и стоимость проектов могут отличаться в разы. Как правило, сложность работы определяется по следующим характеристикам: ясность образа, размер изображения, количество объектов, а также сложность и детализация частей.
Перефразируя народную мудрость, скажем: лучше один раз показать, чем сто раз описать.
http://compgraphics.info/2D/affine_transform.php
http://msdn.microsoft.com/ru-ru/library/8667dchf(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
http://elhow.ru/ucheba/opredelenija/m/chto-takoe-matrica
http://ru.vlab.wikia.com/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)
http://netlib.narod.ru/library/book0032/part1_03.htm
http://netlib.narod.ru/library/book0051/ch02_01.htm
http://sea.2bb.ru/viewtopic.php?id=162
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
Основные понятия и определения кодирования информации. Кодовая комбинация и ее длина. Классификация кодов по различным признакам, способы их представления, назначение. Представление в виде кодовых деревьев или многочленов, матричное и геометрическое. реферат [38,1 K], добавлен 05.08.2009
Основные понятия теории вероятностей. Экономика и надежность: жизненный цикл изделия, логико-вероятностная, пороговая и марковская модели. Понятие резервирования. Матричное представление избыточных кодов. Методы технической диагностики компьютеров. презентация [801,4 K], добавлен 19.12.2010
Принципы разработки и пример работы программы, реализующей основные операции алгебры матриц: сложение, вычитание, умножение, транспонирование, а также умножение матрицы на число. Функциональные модели и блок-схемы решения задачи операций над матрицами. курсовая работа [956,7 K], добавлен 25.01.2010
Суть принципа точечной графики. Изображения в растровой графике, ее достоинства. Обзор наиболее известных редакторов векторной графики. Средства для работы с текстом. Программы фрактальной графики. Форматы графических файлов. Трехмерная графика (3D). дипломная работа [764,7 K], добавлен 16.07.2011
Преобразование "естественной" информации в дискретную форму. Анализ процессов дискретизации и квантования изображения. Векторные и растровые процедуры, применяемые в компьютерной графике. Законы математического описания цвета и виды цветовых моделей. презентация [208,4 K], добавлен 29.01.2016
Наглядное представление массивов различной информации в компьютерной графике. Типы визуализации: схематическая, концептуальная, стратегическая, графическая, комбинированная. Виды сравнения данных: покомпонентное, позиционное, временное, частотное. контрольная работа [1,4 M], добавлен 20.12.2015
Управление файловой системой средствами Windows Explorer (Проводник). Цифровое представление вещественных чисел. Запуск MS Excel. Метод нисходящего проектирования. Характеристики плавающего числа двойной точности. Понятие компьютерной безопасности. реферат [69,0 K], добавлен 24.04.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Применение теории матриц в компьютерной графике научная работа. Программирование, компьютеры и кибернетика.
Реферат На Тему Виробнича Програма Та Її Розробка
Доклад по теме Ваш собственный сервер: установка Windows Server 2003
Контрольная работа по теме Материаловедение в производстве швейных изделий
Образец Дневника Практики Медсестры
Дипломная работа: Юридическая сущность договора расчетного счета, пути и методы ее реализации
Техника Безопасности В Спортивных Единоборствах Реферат
Курсовая работа: Экономический расчет при эксплуатации дробилки КРД 700
Реферат по теме Становление Президентской республики. Внутренняя и внешняя политика на рубеже XX-XXI веков.
Лабораторная Работа Базы Данных Sql
Контрольная работа: по Управление техническими системами
Эссе Про Эмоции
Банковский менеджмент
Сочинение На Тему Красота Человеческого Труда
Контрольная работа: Коррекционная работа по формированию сюжетно-ролевой игры у дошкольников с интеллектуальной недостаточностью
Реферат по теме Идеальное бытие: сознание, мышление, язык
Реферат по теме Теорія ліній передач
Реферат по теме Подготовка и повышение квалификации кадров
Реферат: Основные тенденции применения ЭВМ в сфере образования
Аттестационная Работа На Тему Политический Портрет Авраама Линкольна
Доклад: David Hilbert
Органи влади Ірану - Политология реферат
Система нормирования в строительстве - Менеджмент и трудовые отношения курсовая работа
Управление трудовыми ресурсами на предприятии - Менеджмент и трудовые отношения дипломная работа