по x, имея исходный набор точек. Этот метод также лежит в основе линейных моделей машинного обучения.

Заключение

На этом наш первый урок завершен. Рекомендуем ознакомиться с дополнительными материалы, которые можно скачать по ссылке https://gitverse.ru/dmitrypavlov74/DMBook. В папке L1 вы найдете два проекта: первый Chart2D посвящен построению графиков, второй Interpolation2D – интерполяционным методам.

Урок 2. 3D моделирование

Цифровые модели в пространстве

Введение

Создание компьютерных игр и CAD-систем невозможно без глубокого понимания того, как устроены трехмерные цифровые модели, как они создаются, трансформируются и освещаются. Все это (создание, трансформирование и освещение трехмерных объектов) мы подробно разберем в этом уроке. Также мы научимся строить поверхности, накладывать текстуры на объекты, рисовать тени и моделировать туман.

3D-моделирование

Цифровое 3D-моделирование – это процесс создания трехмерного представления объекта путем манипулирования ребрами и вершинами в моделируемом трехмерном пространстве. Вы наверняка видели результаты трехмерного моделирования в фильмах, анимациях и видеоиграх, которые наполнены фантастическими существами и структурами.


3D-моделирование используется в самых разных областях, включая инженерию, архитектуру, развлечения, кино, спецэффекты, разработку игр и коммерческую рекламу.


Сама тема 3D-моделирования необычайно интересна и очень востребована в современном мире. В IT-индустрии существует даже профессия 3D-дизайнера (например, 2D-дизайнеров не существует). Справедливости ради нужно отметить, что к разработчику 3D-систем предъявляются повышенные требования в области математики. Наш второй урок направлен как раз на то, чтобы читатель научился понимать основные этапы, связанные с работой в 3D-моделировании. Хочется сразу успокоить читателя: в математическом аппарате, необходимом для работы с 3D-моделями, нет ничего сложного, хотя знаний здесь понадобится больше, чем при построении графиков.

Преобразование точек в трехмерном пространстве

Поскольку трехмерные модели так или иначе задаются набором точек, чтобы изменять положение и размер объекта в пространстве, достаточно уметь изменять положение точки. Мы рассмотрим следующую группу преобразований: поворот, масштабирование и параллельный перенос. Именно к этим трем действиям и сводится трансформация трехмерной модели. Существует унифицированный подход к этим преобразованиям, а именно все эти операции можно свести к умножению матрицы на вектор. Для преобразования точек в трехмерном пространстве используются матрицы порядка 4x4.


рис. 2.1

Вращение

Далее для каждого преобразования укажем матрицу, которая ему соответствует. Сначала рассмотрим матрицы, которые соответствуют вращению.


Поворот вокруг оси Х:



Поворот вокруг оси Y:



Поворот вокруг оси Z:



α – угол поворота, заданный в радианах. Поворот осуществляется против часовой стрелки, если смотреть навстречу оси.


Мы рассмотрели матрицы поворота точки вокруг координатных осей. Также на практике может потребоваться повернуть точку вокруг произвольной оси. Пусть ось вращения задана единичным вектором v (x, y, z). Тогда матрица поворота вокруг этого вектора имеет вид:


Масштабирование

Матрица масштабирования (изменения размеров объекта с сохранением подобия) имеет вид:



Где с – это коэффициент масштабирования. Если коэффициент с> 1, то точка удаляется от начала координат, если 0 <с <1, то приближается. Если же с <0, то происходит зеркальное отражение точки относительно начала координат. С помощью масштабирования можно управлять размером модели, увеличивая или уменьшая его.