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

Растровое представление геометрических объектов. Растровая развертка отрезка

Как мы уже знаем, техническое определение плоского изображения удовлетворяет широко распространенному устройству отображения - растровому дисплею. Напомним, что основные свойства такого плоского изображения или, другими словами, растра состоят в следующем:

  • растр - это ограниченная по площади прямоугольная область;

  • множество точек растра конечно и адресуется целочисленными значениями координат вдоль горизонтального (ось Х) и вертикального (ось Y) направлений;

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

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

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

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

Непрерывность на дискретном растре означает, что все точки последовательности имеют ровно по две соседние, кроме первой и последней, если линия не является замкнутой и не имеет самопересечений (простая линия). Очевидно, что все точки простой замкнутой линии имеют ровно по две соседние точки.

Интуитивно ясно, что соседними могут считаться такие точки растра, координаты которых отличаются не более, чем на единицу.

Уточним понятия соседства точек растра.

Рисунок 12.1. Понятие соседства точек растра

Каждая точка растра имеет четыре непосредственных соседних точки, у которых только координата Х или только координата Y отличаются на 1.

Такие соседние точки называются 4-связными или сильносвязными.

Каждая точка растра имеет 8 косвенных соседних точек, у которых координаты (Х, Y) отличаются не более чем на 1.

Рисунок 12.2. Слабосвязные точки

Такие соседние точки называются 8-связными или слабосвязными.

Непрерывная последовательность точек А1, А2 ... Аn называется сильносвязной, если точки  являются 4-связными соседями.

Непрерывная последовательность точек А1, А2 ... Аn называется слабосвязной, если точки  являются 8-связными соседями.

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

Растровая развертка отрезка.

Пусть отрезок задан координатами начальной (x1; y1) и конечной (x2; y2) точек. Тогда уравнение линии имеет вид  , где  - угловой коэффициент, (x; y) - координаты точек отрезка

Уравнение линии задает координаты (x; y) точек отрезка, которые надо последовательно указывать на растре, чтобы получить растровую развертку отрезка.

Как уже было отмечено, растровая развертка является приближением исходного отрезка.

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

Например, для квадратных пикселов развертки могут иметь вид:

Рисунок 12.4. Четырех- и восьмисвязная развертка

Рассмотрим простейший алгоритм построения растровой развертки отрезка. Для простоты предположим, что угловой коэффициент k удовлетворяет условию:  . Это означает, что конечная точка (x2; y2) лежит правее и выше начальной точки (x1; y1), а при последовательном переборе значений координаты х с шагом 1, значение координаты y применяется с шагом не больше единицы. Такое предположение всегда выполнимо, если при угловом коэффициенте k>1 поменять местами смысл переменных x и y. Тогда выполнение условия  означает, что все точки растровой развертки будут соседними.

Алгоритм 1 реализует естественное представление о процессе развертки отрезка. Здесь целочисленная абсцисса точки получает каждый раз единичное приращение. Целочисленная ордината точки получает единичное приращение только тогда, когда накопленное вещественное значение ординаты увеличивается на единицу. Функция putpixel воспринимает целые параметры. Поэтому дробная часть вещественной переменной отбрасывается. Добавка 0,5 позволяет получить в итоге округление вещественного значения y до ближайшего целого при отбрасывании дробной части выражения y+0,5.

Легко заметить, что результатом является 8-связная развертка отрезка.

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

В алгоритме 2 это состояние отслеживается вещественной переменной е, а единичное приращение целой переменной у выполняется в явном виде.

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

В алгоритме 3 с помощью вещественной переменной е по-прежнему отслеживается момент выполнения единичного приращения целой величины у. Но в этот момент приращение целой величины х не выполняется. И наоборот, в момент приращения х, приращение по у не выполняется.

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