Олимпиадная задача. Построение прямой линии

На экране даны 2 точки с произвольными координатами. Составить программу, которая строит между ними прямую линию, не используя при этом графические функции LINE, DRAW и т. п. Строить изображение точками.

code: #pascal
uses graph;
var gd,gm: Integer;
procedure _Line(x1,y1,x2,y2: integer);
var
  x,y,h: integer;
  k: double;
begin
  x:=0; y:=0;
  h:=1; {шаг между точками по X}
  k:=(y2-y1)/(x2-x1); {угловой коэффициент линии}
  while (x1+x) <= x2 do
    begin
      PutPixel(x1+x,y1+y,white);
      x:=x+h; y:=round(k*x);
    end;
end;
 
begin
 gd:=Detect;
 InitGraph(gd,gm,'c:\bp\bgi');
 if GraphResult <> grOk then halt;
 _Line(50,50,400,200);
 readln;
 CloseGraph;
end.

автор: _Dmitry

Поделиться:

Похожие статьи: