Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
299.52 Кб
Скачать

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

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

Горизонтальный отрезокмежду точками с абсциссамих1иx2 имеет длину

L=x2 - x1.

Изменение длины отрезка в зависимости от коэффициента масштабирования определяется соотношением

Ls = L*S = S(x2 – x1) =X2s – X1s

Координаты точекX2s ,X1s рассчитываются по матрице масштабирования относительно начала координат. ЕслиS>1отрезок становится длиннее; еслиS <1– отрезок станет короче, в противном случае он не изменит свою длину. Из рисунка видно, что масштабирование приводит к изменению координат концевых точек, то есть после масштабирования отрезок занимает новое положение, определяемое координатами концевых точек. Общий подход при перемещении отрезка заключается в выборе опорной (базовой) точки, положение которой считается фиксированной ( точкаx0 на рисунке 3.29). Координаты отрезка в этом случае после проведения расчетов определяются из выражений

X1s = (x1-x0)*S + x0 =x0*(1-S)+x1*S

X2s =(x2-x0*S) + x0=x0*(1-S) + x2*S

В качестве опорной точки можно выбирать любую точку на экране или вне его

Фиксируя середину отрезка, получим

X1s =XM - (x2-x1)*S/2

X2s =XM+(x2-x1)*S/2

Для вертикального отрезка расчеты дают аналогичные результаты для координатыy.

Отрезок, проведенный под произвольным углом, (рис. 3.30) масштабируется одновременным изменением горизонтальной (x2-x1) и вертикальной(y2-y1)проекций относительно базовой точкиx0.

X1s = x0*(1-S)+x1*S

X2s =x0*(1-S) + x2*S

Y1s = y0*(1-S )+ y1*S

Y2s =y0*(1-S) + y2*S

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

Вращение точки.

Рисунок 3.31 иллюстрирует вращение точки. Перемещение осуществляется из точки X,Yв точкуX1,Y1по дуге окружности с центром вращенияX0,Y0. Угол jна рисунке определяет величину поворота. Координаты точкиX1,Y1после поворота определяются из

X1=X0 + (X-X0)*cosj + (Y-Y0)*sinj

Y1=Y0 + (Y-Y0)*cosj + (X-X0)*sinj

Опорная (базовая) точка вращения может находиться в любом месте на экране и вне его границ. Угол поворота jизменяется против направления часовой стрелки (положительное направление отсчета) от начального положения точкиX,Y. Обычно значения этого угла лежат в пределах от 0 до 2p. Другие углы поворота тоже допустимы, однако такие углы эквивалентны повороту в указанном диапазоне.

Преобразования над системой точек в однородных координатах в наиболее общем виде, выполняемые операциями R, S ,Tможет быть представлено матрицейPразмером (3х3)

.

Правая верхняя часть размером 2х2 является объединенной матрицей поворота и масштабирования, tx иty описывают суммарный перенос;p и q – получение проекций, аSпроизводит изменение общего масштаба.

1Все преобразования проводятся в декартовой прямоугольной системе координат. Случай использования иного позиционирования обязательно будет оговариваться.