Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Автоматизация геометрического проектирования.docx
Скачиваний:
9
Добавлен:
29.07.2019
Размер:
854.69 Кб
Скачать

Геометрические преобразователи

Множество геометрических преобразователей можно привести к нескольким элементарным геометрическим преобразованиям.

  1. Поворот на задний угол

  2. Растяжение или сжатие по осям

  3. Отображение относительно осей

  4. Смещение на заданный вектор.

1)

X*=xcosφ-ysinφ

Y*=xsinφ+ycosφ

2)

а – коэффициент искажения по оси х

X*=ax

Y*=by (b-коэффициент искажения по оси y)

3)

Для отображения относительно оси х

Х *=х

Y*=-у отображение относительно оси х

Х *=-х,

Y*=у отображение относительно оси у

х*=x+m

Y*=y+n вектор (m;n)

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

Матрицы преобразования:

a,b,c,d – отвечает за отображение, растяжение по осям и поворачивает на угол φ по осям.

e,f – отвечают за проецирование

m,n – перенос изображения или сдвиг

s- общее масштабирование. Если s>1 – уменьшение изображения, если s>1 – происходит увеличение изображения.

Матрица преобразований для поворота на угол φ

Матрица преобразования отвечает за масштабирование по осям.

Матрица отображения относительно оси х

Матрица смещения:

Матрица относительно оси y

Общая матрица масштабирования

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

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

Пример

Поворот изображения на угол 900 матрица преобразования:

Осуществим поворот изображения на 900. Матрица преобразования:

Алгоритмы удаления невидимых линий.

Существует 2 способа реализации сложных преобразований:

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

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

Для трехмерных преобразований

Матрица преобразования имеет вид:

Где p1=[3*3]- матрица отвечает за поворот изображения, масштабирование по осям и отображение относительно оси;

p2=[3*1]-вектор – столбец, отвечает за проецирование;

p3=[1*3]-вектор-строка, сне изображение

p4=[1]- S – общее масштабированное изображение.

  1. Матрица отвечает за поворот изображения относительно оси х.

Матрица преобразования

Матрица смещения на вектор mnl

Матрица масштабирования по координатам

Пример: преобразование параллелепипеда в единичный куб

Матрица

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

Если необходимо произвести поворот изображения относительно оси ОО поворот относительно оси Z:

  1. Смещение точки от начала координат 0-Т1

  2. поворот изображения относительно оси OX (Rx)

  3. поворот изображения относительно оси OZ (Rz)

  4. перемещение изображения в начальную точку Т2

M=T1*Rx*Rz*T2