Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Book_Sidenko.doc
Скачиваний:
1
Добавлен:
22.02.2020
Размер:
6.28 Mб
Скачать

Поворот

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

. (18)

Полагая

,

имеем:

. (19)

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

.

Докажем, что два последовательных поворота аддитивны. Если точку повернуть на угол в точку , а точку — в точку при повороте на угол , то общий поворот равен .

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

.

Найдем :

2.3. Композиции двумерных преобразований

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

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

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

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

  • Поворот, .

Рис. 2.5

  • Перенос точки из начала координат в начальную позицию, .

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

,

или:

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

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

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

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

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

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

Если надо промаштабировать, повернуть и расположить в нужном месте домик, (центром поворота и масштабирования является точка ), то необходимо выполнить:

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

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

  • Поворот, .

  • Перенос точки из начала координат назад, .

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

.

2.4. Матричное представление трехмерных преобразований

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

Перенос

Трехмерный перенос является простым расширением двумерного:

.

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

Расширяется аналогичным образом:

,

или

.

Поворот

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

.

Матрица поворота вокруг оси :

.

Матрица поворота вокруг оси :

.

При сложном повороте, он раскладывается на составляющие:

Рис. 2.6

— поворот вокруг оси до совмещения с плоскостью ;

— поворот вокруг оси до совмещения с полуосью .

2.5. Композиция трехмерных преобразований

Путем объединения элементарных трехмерных преобразований можно получить другие преобразования.

Рис. 2.7

Пример. Преобразовать отрезок из начальной позиции в конечную таким образом, чтобы точка совпала с началом координат, а отрезок располагается вдоль отрицательной полуоси .

На длины отрезков преобразование не воздействует.

Для выполнения этой задачи рассмотрим три шага:

  • Перенос точки в начало координат.

  • Поворот вокруг оси до совмещения отрезка с плоскостью .

  • Поворот вокруг оси до совмещения отрезка с отрицательной полуосью .

Шаг 1

Рис. 2.8

Применим к :

Шаг 2

Рис. 2.9

Поворот вокруг оси на угол (угол положительный)

,

где .

Подставляя эти выражения в матрицу поворота, находим:

Шаг 3

Поворот вокруг оси (угол отрицательный)

Рис. 2.10

,

Где

.

Результат поворота:

,

теперь отрезок совпадает с осью .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]