Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Reyting_22.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
75.96 Кб
Скачать
  1. Понятие двумерных геометрических преобразований

Геометрические преобразования – такие преобразования графического объекта, которые не нарушают структуру изображения, то есть если некоторая точка a(x,y) принадлежит линии А, то преобразованная точка a’(x’,y’) принадлежит преобразованной линии А’; А принадлежит поверхности A и А’ принадлежит поверхности A’ после выполнения преобразования. Изображение может двигаться, наклоняться, расширяться, но структура изображения не должна теряться. Поэтому тип примитива не влияет на выполнение геометрических преобразований.

Существует всего три типа двухмерных геометрических преобразований:1. Поворот.2. Перенос.3. Масштабирование.

  1. 2D геометрические преобразования. Поворот

Из геометрических соображений получаем (рис. 18):

x’ =   x·cos a + y·sin a;

y’ = - x·sin a + y·cos a .

Если выполним поворот изображения, заданного в системе координат XOY, получим координаты точек этого изображения в системеX’OY’. Повернем затем систему X’OY’ назад в первоначальное положение.

При замене a на –a получим поворот в другую сторону.

Кроме того, этот поворот в плоскости XOY можно представить как частный случай поворота в пространстве XYZ, а именно как плоский поворот относительно оси Z на угол a в трехмерном пространстве XYZ:

x’=   x·Сos a + y·Sin a   + z·0

y’= - x·Sin a + y·cos a  + z·0

z’=    x·0       + y·0         + z·1.

То же в матричном виде:

[x’  y’  z’] = [x  y  z] 

Аналогично получается соотношение для новых координат точки, полученных в результате ее поворота относительно оси Y на угол b :

x’=x·cos b + y·0  - z·sin b

y’=x·0        + y·1 + z·0

z’= x·sin b + y·0  + z·cos b.

Поворот вокруг оси Х на угол g :

x’= x·1 + y·0       + z·0

y’= x·0 + y·cos g + z·sin g

z’= x·0 – y·sin g + z·cos g.

Соответствующие матрицы поворотов имеют вид (рис. 19):

  1. 2D геометрические преобразования. Перенос

Перенос точки производится добавлением к каждой координате точки положительной или отрицательной константы. Если обозначить параметры переноса через Тх (перенос в направлении оси х), Ту (перенос в направлении оси у), Tz (перенос в направлении оси z), получим координаты перенесенной точки Р(x,y,z):

P’(x’,y’,z’) = Р(x,y,z) + T(Тху,Tz) или (x’,y’,z’) = (x,y,z) + (Тху,Tz).

Можно сюда добавить операцию поворота:

P’(x’,y’,z’) = Р(x,y,z) · R(x,y,z)+ T(Тху,Tz).

  1. 2D геометрические преобразования. Масштабирование

Операция масштабирования заключается в том, что каждая координата точки умножается на некоторую величину. Преобразование выполняется с помощью матрицы масштабирования S:  P’= P·S, или

где Sx ,Sy ,Sz – коэффициенты масштабирования, являющиеся масштабными множителями соответственно в х-, у-, z- направлениях. Если масштабные множители меньше единицы, то преобразуемый объект сжимается, если они больше единицы, то объект растягивается. Если Sx= Sy = Sz = C, объект сжимается или растягивается одинаково по всем направлениям, что соответствует операции общего масштабирования. При общем масштабировании (равномерно по всем осям без изменения формы объекта) матрицу S можно заменить скаляром C:

(x’,y’,z’) = С· (x,y,z), где С=const.

Можно объединить все три преобразования в общую формулу:

P’ = S · R · P + T,

где P – исходная точка; P’ – преобразованная точка; S, R, T – соответствующие матрицы.

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