Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-D моделирование инженерных конструкций.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.43 Mб
Скачать

Перенос

Уравнение переноса (1) запишется в виде матрицы преобразования:

(10) или (11)

где

,

перемножив, получим:

.

Докажем, что если точку перенести в на расстояние , а затем в точку на расстояние , то в результате получим перенос на расстояние .

Доказательство:

(12) и (13)

Теперь подставим (12) в (13):

.

Матричное произведение и :

то есть перенос — функция аддитивная.

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

Уравнение масштабирования (4) в матричной форме имеет вид:

(14)

Определяя

,

имеем

(15)

перемножив, получим:

.

Поворот

Уравнение поворота (3) можно представить в виде:

(18)

полагая

имеем:

(19)

Перемножив, получим:

Аналогично тому, как двумерные преобразования описания матрицами размером , трехмерные — могут быть представлены в виде матриц . И тогда трехмерная точка записывается в однородных координатах как , где . Если же , то — .

Поворот

Двумерный поворот, рассмотренный ранее является в то же время трехмерным поворотом вокруг оси .

  1. Композиции преобразований

(Двумерных)

При работе с Гибкой системой объект подвергается сразу нескольким преобразованиям. Для получения желаемого результата используют композицию преобразований, объединяя матрицы . К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом.

Рассмотрим, например, поворот объекта относительно некоторой точки .

Но до этого был рассмотрен поворот относительно начала координат. Для решения этой задачи разобьем ее на три части (три элементарных преобразования):

  1. Перенос (точку в начало координат), .

  2. Поворот, .

  3. Перенос (точку из начала координат назад), .

Результирующее преобразование имеет вид: или:

Этот пример хорошо иллюстрирует, как применение однородных координат упрощает задачу.

Аналогично, если надо промасштабировать объект относительно точки , а не начала координат, то надо:

  1. Перенести точку в начало координат, .

  2. Масштабировать, .

  3. Перенести точку назад, .

Результат имеет вид:

Если нам надо промасштабировать, повернуть и расположить в нужном месте домик. Центром поворота и масштабирования является точка .

Необходимо выполнить:

  1. Перенос (точку в начало координат), .

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

  3. Поворот, .

  4. Перенос (точку из начала координат назад), .

В структуре данных, в которой содержится это преобразование, могут находиться масштабный коэффициент , угол поворота и координаты . Но может быть и записана матрица результирующего преобразования:

.