11496

Алгоритмы растровой графики

Практическая работа

Информатика, кибернетика и программирование

Алгоритмы растровой графики Растром называется прямоугольная сетка точек формирующих изображение на экране компьютера. Каждая точка растра характеризуется двумя параметрами: своим положением на экране и своим цветом если монитор цветной или степенью яркости если м...

Русский

2013-04-08

153 KB

6 чел.

Алгоритмы растровой графики

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

Рис. 28. Растеризация отрезка прямой линии.

Термин “пиксел” образован от английского pixel (picture element - элемент изображения)  - то есть точка на экране. Будем считать, что пикселы имеют целочисленные координаты. На первый взгляд кажется, что эта задача имеет простое решение. Пусть конечные точки отрезка имеют целочисленные координаты, и уравнение прямой, содержащей отрезок: . Не нарушая общности, будем также считать, что тангенс угла наклона прямой лежит в пределах от 0 до 1. Тогда для изображения отрезка на растре достаточно для всех целых , принадлежащих отрезку, выводить на экран точки с координатами . Однако в этом методе присутствует операция умножения . Хотелось бы иметь алгоритм без частого использования операции умножения вещественных чисел. Избавиться от операции умножения можно следующим образом. Поскольку , то один шаг по целочисленной сетке на оси  будет соответствовать . Отсюда получаем, что  будет увеличиваться на величину . Итерационная последовательность выглядит следующим образом:

,  

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

Для вывода формул алгоритма Брезенхема рассмотрим рис. 29.

Рис. 29. Рисование отрезков прямых по методу Брезенхема.

Пусть начало отрезка имеет координаты , а конец . Обозначим , . Не нарушая общности, будем считать, что начало отрезка совпадает с началом координат, и прямая имеет вид , где . Считаем что начальная точка находится слева. Пусть на -м шаге текущей точкой отрезка является . Выбор  следующей точки  или зависит от знака разности . Если , то  и тогда , , если же , то  и тогда , .

, ,

 

.

Поскольку знак  совпадает со знаком разности , то будем проверять знак выражения . Так как  и , то .

Пусть на предыдущем шаге , тогда  и . Если же на предыдущем шаге , то и .

Осталось узнать как вычислить . Так как при :

, .

Далее приводится листинг процедуры на языке Паскаль, реализующей алгоритм Брезенхема.

Procedure Bresenham(x1,y1,x2,y2,Color: integer);

var

dx,dy,incr1,incr2,d,x,y,xend: integer;

begin

 dx:= ABS(x2-x1);

 dy:= Abs(y2-y1);

 d:=2*dy-dx;  {начальное значение для d}

 incr1:=2*dy;  {приращение для d<0}

 incr2:=2*(dy-dx); {приращение для d>=0}

  if x1>x2 then  {начинаем с точки с меньшим знач. x}

 begin

 x:=x2;

 y:=y2;

 xend:=x1;

end

else

begin

 x:=x1;

 y:=y1;

 xend:=x2;

end;

PutPixel(x,y,Color); {первая точка отрезка}

 While x<xend do

 begin

x:=x+1;

  if d<0 then

    d:=d+incr1  {выбираем нижнюю точку}

  else

begin

 y:=y+1;

 d:=d+incr2; {выбираем верхнюю точку, y-возрастает}

end;

  PutPixel(x,y,Color);

 end;{while}

end;{procedure}


 

А также другие работы, которые могут Вас заинтересовать

15745. Панорамный подход к проектированию педагогического исследования 104.5 KB
  Панорамный подход к проектированию педагогического исследования Владимир ЗАГВЯЗИНСКИЙ Статья которую мы вам предлагаем носит сугубо методологический теоретический характер. Но в то же время вдумчивому исследователю она раскрывает чёткий алгоритм действий в пои...
15746. СЛОВЕСНЫЙ ОБРАЗ В ЭПОХУ СИНКРЕТИЗМА 374 KB
  ЛЕКЦИЯ ПЕРВАЯ. СЛОВЕСНЫЙ ОБРАЗ В ЭПОХУ СИНКРЕТИЗМА Слово в эпоху синкретизма. Проблема генезиса и исходной формы образа. Эволюция образного сознания в эпоху синкретизма. Кумуляция как наиболее архаическая форма образа ее историческая семантика. Параллелизм его фо
15747. 13 замечаний Огилви о заголовках 26 KB
  13 замечаний Огилви о заголовках Фрагмент из книги рекламного гуру Дэвида Огилви Огилви о рекламеOgilvy on Advertising. Vintage Books Заголовки читают в пять раз большее число читателей чем основной текст. Это означает что продают как раз заголовки а 90 денег тратятся зря. Л...
15748. Культура делового общения 1.42 MB
  Культура делового общения В пособии сделана попытка рассмотреть деловой разговор в сфере предпринимательской деятельности с позиций его речевой логической психологической и невербальной культуры а также на основе обобщения отечественного и зарубежного опыта оп...
15749. О СМЕЩЕНИИ ЖАНРОВ ЛИРИКИ ХХ ВЕКА 69.5 KB
  С.Ю. АРТЁМОВА Тверь О СМЕЩЕНИИ ЖАНРОВ ЛИРИКИ ХХ ВЕКА Вопрос о жанрах лирики как и вообще литературы поднимается в литературоведении с XIX века до сегодняшних дней1. Однако о чистых жанрах уместно говорить только применительно к поэзии XVIII века когда жанровые норм...
15750. К ОПРЕДЕЛЕНИЮ ПОНЯТИЯ «ВТОРИЧНЫЙ ТЕКСТ» 46 KB
  О.А. ВЛАДИМИРОВА Тверь К ОПРЕДЕЛЕНИЮ ПОНЯТИЯ ВТОРИЧНЫЙ ТЕКСТ Понятие вторичные текст обычно употребляется как клише литературными критиками. Так они обозначают произведения авторы которых изза недостатка таланта не в силах создать чтолибо оригинальное и в
15751. К ОПРЕДЕЛЕНИЮ ПОНЯТИЙ «ЦИКЛ» И «ЦИКЛИЗАЦИЯ» 71 KB
  К определению понятий цикл и циклизация Е.Ю. АФОНИНА Тверь К ОПРЕДЕЛЕНИЮ ПОНЯТИЙ ЦИКЛ И ЦИКЛИЗАЦИЯ В практике литературоведческих исследований традиционным является рассмотрение текстов в их взаимосвязи. Возникновение особого исследоват...
15752. СЕМИОТИЧЕСКИЕ МЕХАНИЗМЫ ИНТЕРТЕКСТУАЛЬНОСТИ 49.5 KB
  А.В. БОРИСЕНКО Тверь СЕМИОТИЧЕСКИЕ МЕХАНИЗМЫ ИНТЕРТЕКСТУАЛЬНОСТИ Интерес к работам Ч. Пирса обострившийся в последнее время в значительной мере связан с тем что его концепция знака оказалась в большей степени адекватна современным представлениям о природе комм...
15753. АРХИТЕКТОНИКА И СТРУКТУРА ТЕКСТА: ПОСТАНОВКА ПРОБЛЕМЫ (НА МАТЕРИАЛЕ РАССКАЗА И.А. БУНИНА «ПРЕОБРАЖЕНИЕ») 50.5 KB
  Л.Ю. ЧУНЁВА Тверь АРХИТЕКТОНИКА И СТРУКТУРА ТЕКСТА: ПОСТАНОВКА ПРОБЛЕМЫ НА МАТЕРИАЛЕ РАССКАЗА И.А. БУНИНА ПРЕОБРАЖЕНИЕ Понятие архитектоника часто встречается в литературоведческих исследованиях1 но его значение пока остается неопределенным. Даже в тех р