Инструменты пользователя

Инструменты сайта


examination:kg:question28

Плоские графические примитивы. Отрезок. Итерационный метод построения.

Простой пошаговый алгоритм

позиция = начало

шаг = приращение

1 if позиция - конец < точность then 4

  if позици > конец then 2
  if позиция < конец then 3

2 позиция = позиция - шаг

  go to 1

3 позиция = позиция + шаг

  go to 1

4 finish

алгоритм Брезенхема

был первоначально разработан для цифровых графопостроителей, однако он в равной степени подходит для использования растровыми устройствами с ЭЛТ. Алгоритм выбирает оптимальные растровые координаты для представления отрезка. В процессе работы одна из координат - либо x, либо y (в зависиимости от углового коэффициента) - изменяется на единицу. Изменение другой координаты (на 0 или 1) зависит от расстояния между действительным положением отрезка и ближайшими координатами сетки. Такое расстояние мы назовем ошибкой. Алгоритм построен так, что требуется проверить лишь знак этой ошибки.

x, y, Dx, Dy - целые

е - вещественное

  инициализация переменных
  x = x1
  y = y1
  Dx = x2 - x1
  Dy = y2 - y1
  Инициализация с поправкой на половину пиксела
  е = Dy/Dx - 1/2
  начало основного цикла
  for i = 1 to Dx
      plot (x,y)
      while ( e => 0 )
          y = y + 1
          e = e - 1
      end while
      x = x + 1
      e = e + Dy/Dx
  next i
  finish

http://www.mari.ru/mmlab/home/kg/Lection5/images/blok533.gif

examination/kg/question28.txt · Последние изменения: 2014/01/15 12:19 (внешнее изменение)