Перейти к содержимому



4-х связная линия (Pascal)


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 admin

admin

    Администратор

  • Администраторы
  • 76 сообщений

Отправлено 04 Февраль 2011 - 17:09

procedure putpixel(cnv:TCanvas; x,y,color:integer)

begin
            cnv.pixels[x,y]:=color;
end;

procedure line(cnv:TCanvas; x1,y1,x2,y2,color:integer);
var deltaX, deltaY, signX, signY, error,error2: integer;
begin

            deltaX := abs(x2 - x1);
            deltaY := abs(y2 - y1);

if(x1 < x2) then signX := 1 else signX := -1;

if(y1 < y2) then signY := 1 else signY := -1;

            error := deltaX - deltaY;
            while(true) do
            begin
   putpixel(cnv,x1, y1,color);
   if((x1 = x2) AND (y1 = y2)) then break;
   error2 := error * 2;
   if(error2 > -deltaY) then

                   begin

65]error :=  error - deltaY;

65]x1 := x1 + signX;

                   end;

   if(error2 < deltaX) then begin error := error + deltaX; y1 := y1 + signY; end;
            end;
end;




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Рейтинг@Mail.ru