Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Изображения, рисование



Вернуться к списку функций
 Общий алгоритм Брезенхема для четырехсвязной развертки отрезка

 Прислал: JJ_Bat (Красноярск) ( 21 ноября 2007 г. )
©  Придумал Брезенхем, реализовано студентами СибГТУ ФАИТ
 Описание:
Общий алгоритм Брезенхема для четырехсвязной развертки отрезка

 Зависимости:
нет

 Ограничения:
нет

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Общий алгоритм Брезенхема для четырехсвязной развертки отрезка

Общий алгоритм Брезенхема для четырехсвязной развертки отрезка

Зависимости: нет
Автор:       JJ_Bat, Красноярск
Copyright:   Придумал Брезенхем, реализовано студентами СибГТУ ФАИТ
Дата:        21 ноября 2007 г.
***************************************************************** }

procedure line_4(x1,y1,x2,y2: Integer);
var x,y,sy,sx,dx,dy,e,z,i: Integer;
    change: boolean;
begin
  x:=x1;
  y:=y1;
  dx:=abs(x2-x1);
  dy:=abs(y2-y1) ;
  sx:=sign(x2-x1);
  sy:=sign(y2-y1);
  e:= 2*dy-dx;
  
  if dy<dx then change:=false
  else begin
    z:=dx;
    dx:=dy;
    dy:=z;
    change:=true
  end;

  for i:=1 to dx+dy do begin
    if dy< dx then begin
      
      if change then y:=y+sy
      else x:=x+sx;
        
      e:=e+2*dy;
    end
    else

       if change then x:=x+sx
       else y:=y+sy;

    e:=e-2*dx

    end;

  Form1.Canvas.Pixels[x,y]:=clblack; // вывод точки, для примера
end;


Вернуться к списку функций

Наверх ▲