Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка По Мультимедийным Технологиям (Клим А. И.).doc
Скачиваний:
19
Добавлен:
07.10.2014
Размер:
544.77 Кб
Скачать

19.Растеризация контуров. Алгоритм Брезенхама для вычерчивания прямой линии.

Алгоритм Брезенхэ́ма— это алгоритм, определяющий, какие точки двумерного растра нужно закрасить, чтобы получить близкое приближение прямой линии между двумя заданными точками. Это один из старейших алгоритмов в машинной графике.

Отрезок рисуется между двумя точками — (x0,y0) и (x1,y1), где в этих парах указаны колонка и строка, соответственно, номера которых растут вправо и вниз. Сначала мы будем предполагать, что наша линия идёт вниз и вправо, причём горизонтальное расстояниеx1x0превосходит вертикальноеy1y0, т.е. наклон линии от горизонтали — менее 45°. Наша цель состоит в том, чтобы для каждой колонкиxмеждуx0иx1, определить, какая строкаyближе всего к линии, и нарисовать точку (x,y).

Общая формула линии между двумя точками:

Поскольку мы знаем колонку — x, то строка —y— получается округлением к целому следующего значения:

Однако, вычислять точное значение этого выражения нет необходимости, достаточно заметить, что yрастёт отy0и за каждый шаг мы добавляем кxединичку и добавляем кyзначение наклона

которое можно вычислить заранее. Более того, на каждом шаге мы делаем одно из двух: либо сохраняем тот же y, либо увеличиваем его на 1.

Реализация на Object Pascal

Procedure Line(x1,y1,x2,y2:integer);

var dx,dy,i,sx,sy,check,e,x,y:integer;

begin

dx:=abs(x1-x2);

dy:=abs(y1-y2);

sx:=Sign(x2-x1);

sy:=Sign(y2-y1);

x:=x1;

y:=y1;

check:=0;

if dy>dx then begin

dx:=dx+dy;

dy:=dx-dy;

dx:=dx-dy;

check:=1;

end;

e:= 2*dy - dx;

for i:=1 to dx do begin

image1.Canvas.Pixels[x,y]:=clBlack;

if e>=0 then begin

if check=1 then x:=x+sx else y:=y+sy;

e:=e-2*dx;

end;

if check=1 then y:=y+sy else x:=x+sx;

e:=e+2*dy;

end;

end;

Растеризация контуров

Контур может быть растеризован. растеризация – это процесс превращения векторных объектов в пикселы. Добиться превращения можно двумя способами: заливкой и обводкой контура.

Заливка.Чтобы залить контур основным цветом, перетащите строку контура на пиктограммуFill Path (Залить контур)в нижней части палитрыPathsили щелкните на ней. Если щелкнуть на ней удерживая (Option), открывается диалоговое окноFill Path(его можно вызвать также командой Fill Path из меню палитрыPaths). Оно позволяет задать характер заливки, степень прозрачности, режим наложения и т. д.

Обводка.Метод обводки работает точно так же: перетащите строку контура на пиктограммуStroke Path (Oбвести контур)в нижней части палитрыPathsили щелкните на ней. При этом Photoshop обводит контур инструментом "карандаш". Чтобы выбрать другой инструмент, щелкните на пиктограмме при нажатой клавише (Option) или выберите команду Stroke Path из меню палитрыPaths.

20. Аdobe Illustrator. Основные инструменты рисования.

Инструмент Pen Tool (P) предназначен для рисования кривых.

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

Arc Toolпредназначен для создания изогнутых линий.

Использовать обычное перо для рисования спирали не так просто. Для этого используют инструмент . Spiral Tool. Как видите, рисование спиральных объектов без помощи этого инструмента может оказатьсмя трудной задачей.

Инструмент Rectangle Tool(M) не нуждается в представлении. Он служит для построения прямоугольников.

Для рисования прямоугольников со скруглёнными углами служит инструмент Rounded Rectangle Tool.

Polygon Tool предназначен для создания многоугольников.

Звёзды с различным количеством вершин можно создавать с помощью инструмента Star Tool.

При рисовании Вам могут помочь инструменты группы Pencil.

Для сглаживания линий используют инструмент Smooth Tool.

Понять назначение инструмента Gradient Tool(G) легко и просто. Его используют для задания градиента вручную.