Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Лаба 1 (2).doc
Скачиваний:
33
Добавлен:
03.08.2013
Размер:
265.73 Кб
Скачать

1. Поворот

При повороте системы координат XY в декартовой плоскости относительно центра вращения, совпадающего с началом координат, на некоторый угол w координаты произвольной точки P в новой системе координат (x',y') могут быть выражены через координаты этой точки в прежней системе координат (x,y):

x'= x*Cos w + y*Sin w

y'=-x*Sin w + y*Cos w

Этот поворот можно интерпритировать, как частный случай поворота в пространстве XYZ, а именно как плоский поворот относительно оси Z, проходящий через центр вращения перпендикулярно плоскости XY.

Когда преобразуется большое число точек, операция поворота выполняется с использованием матрицы поворота;

Сos w

Sin w

0

-Sin w

Cos w

0

0

0

1

Pn = P ·R

R =

Матрица R - квадратная размерностью 3 * 3 для двухмерного пространства и размерностью 4 * 4 для трехмерного.

2. Перенос

При переносе начала координат, направление осей новой системы координат остается прежним, сохраняется и масштаб. Однако новое начало координат соответствует точке (Tx, Ty) в прежней системе. Следовательно, в новой системе координат прежнее начало координат соответствует (-Tx, -Ty), а точка(x ,y) прежней системы координат становится точкой (x-Tx,y-Ty) новой системе координат.

Операция переноса выполняется с помощью матрицы переноса.

1

0

0

0

1

0

Tx

Ty

1

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

При этом преобразовании начало координат и направление осей старой и новой осей координат одинакова, но масштаб по осям различен Пусть отрезок единичной длины на исходной оси X становится отрезком длины Sx на новой оси Х', а единичный отрезок на прежней оси Y становится отрезком длиной Sy на новой. Тогда точка (x ,y) в прежней системе имеет координаты (x*Sx ,y*Sy) в новой системе.

Sx

0

0

0

Sy

0

0

0

1

Преобразования масштабирования выполняются с помощью матрицы масштабирования.

Общий алгоритм геометрических преобразований

Алгоритм выполнения геометрических преобразований с произвольным ГО может быть представлен в виде последовательности шагов (данные и коэффициенты для геометрических преобразований заложены в программу):

  1. Вычисление матрицы поворота на заданный угол.

  2. Вычисление матрицы переноса на заданное расстояние.

  3. Вычисление матрицы масштабирования на заданные коэффициенты.

  4. Выполнение операции перемножения матриц в заданном порядке в зависимости от вида геометрического преобразования.

  5. Построение изображения в исходной системе координат с запоминанием вычисленных координат точек изображения в массивах, т.е. форматирование изображения без вывода его на экран.

  6. Преобразование всех точек изображения по заданному правилу путем умножения результирующей матрицы ГП на вектор координат каждой точки изображения.

  7. Построение изображения на экране.

Шаги 5 - 7 алгоритма могут быть объединены. При этом координаты точек отдельного примитива(пикселя, отрезка прямой) вычисляются в исходной системе координат, а затем преобразуются и сразу выводятся на экран. Тогда нет необходимости хранить в памяти ЭВМ строку всего изображения целиком: точки ГО выводятся на экран по мере их вычисления.

Соседние файлы в папке doc92