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

16. Преобразования на плоскости и в пространстве. Система однородных координат

Преобразования на плоскости

В качестве базовых операций будем рассматривать следующие:

1. Перенос геометрического объекта вдоль осей координат.

2. Масштабирование по координатам.

3. Вращение вокруг осей координат.

4. Линейная трансформация.

В качестве преобразуемого объекта выберем простейший геом объект - точку с координатами (x, y). После преобразования координаты объекта будут составлять (x', y').

Для того чтобы решить системы уравнений, соответствующие геометрическим преобразованиям на плоскости, необходимо реализовать (программным или аппаратным путем) две матричные операции - сложения и умножения. Чтобы свести эти две операции к одной был предложен вариант расширенного описания геом объекта, включающего доп координату. Это позволило использовать при реализации базовых геом преобразований единственную матрич операцию - умножение.

Координаты каждой точки объекта при этом приобретают вид (xi , yi , 1), а единая для всех операций матрица преобразований имеет вид:

1. Перенос:

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

или

3. Вращение вокруг начала координат:

4. Линейная трансформация:

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

По аналогии с вариантом для плоскости для унификации матричных операций введем дополнительную координату, т.е. будем представлять координаты (x, y, z) точек объектов пространства в виде (x, y, z, 1). Данная форма является частным случаем более общего представления, используемого в проективной геометрии - (x, y, z, h). Преобразования в подобной системе координат возможны только в том случае, если все координаты имеют одинаковую размерность, такая система координат называется системой однородных координат. Обобщая двумерную матрицу преобразований на трехмерный случай, получим:

Четыре подматрицы T11, Т 21, T12, T22 определяют следующие виды преобразований в трехмерном пространстве:

1) Т11 определяет линейные преобразования частичного масштабирования, вращения и линейной трансформации;

2) Т21 определяет преобразование переноса геометрических объектов;

3) Т12 отвечает за построение перспективы;

4) Т22 отвечает за глобальный масштаб изображения.

Результатом воздействия матрицы преобразований Т на трехмерный геом объект (X Y Z 1) является новый геометрический объект, который, в общем случае, может иметь следующий вид:

(X' Y' Z' H') = (X Y Z 1) × T.

Чтобы новый объект располагался в том же пространстве, что и исходный, необходимо выполнить операцию нормализации:

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

Перенос в трехмерном пространстве. Операция переноса реализуется при помощи следующей матрицы:

Масштабирование по осям координат. Диагональные элементы подматрицы Т11 позволяют произвести частичное масштабирование по координатным осям x, y, z.

Общее изменение масштаба можно произвести, изменяя элемент s следующим образом:

При этом величина s=1/a=1/e=1/j, поэтому приведенная матрица общего масштабирования соответствует следующей матрице частичного масштабирования:

Коэффициенты частичного масштабирования a, e, j определяют увеличение размеров

геометрических объектов, а коэффициент общего масштаба s определяет уменьшение размеров.

Вращение вокруг осей координат.

С математической точки зрения вращение вокруг одной из координатных осей имеет место при равенстве определителя матрицы Т11 единице (det T11 = 1). Таким образом, для случаев вращения вокруг оси OX, OY, OZ матрица преобразований имеет вид:

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

Отображения в пространстве. Зеркальные отображения реализуются для отображения относительно координатных плоскостей. Для отображения без изменения масштаба необходимо, чтобы диагональные элементы матрицы Т11 были по модулю равны единице, а определитель равнялся минус единице.

Аналогично определяется матрица для зеркального отображения относительно плоскостей XOZ, YOZ. Отображение относительно произвольных плоскостей можно получить при помощи комбинации операций переноса, вращения и отображения.

Пространственная линейная трансформация. Недиагональные элементы матрицы Т11 определяют линейную трансформацию геометрического объекта в трехмерном пространстве. Например:

Пространственное вращение вокруг произвольной оси.

Данную операцию можно в какой-то мере считать универсальной и на ее базе реализовывать все остальные операции в пространстве. Так эта операция не относится к элементарным, ее следует разложить на простейшие. Из них в данном случае потребуются операции переноса

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

- перенести исходную ось вращения таким образом, чтобы она проходила через начало системы координат.

- повернуть перемещаемую ось до совпадения с одной из координатных плоскостей

- в пределах выбранной координатной плоскости осуществить плоский поворот до совпадения с одной из координатных осей

- теперь можно выполнить заданный поворот вокруг оси, которая совмещена с одной из осей координат

-повторение действий в обратном порядке

Полное преобразование, описывающее поворот в пространстве вокруг произвольной оси:

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