Программирование на Delphi и не только Как попиксельно нарисовать круг? | Программирование на Delphi и не только

Delphi FAQ >> Графика

Данная процедура на Delphi позволяет попиксельно нарисовать круг (точнее окружность) на заданной  канве:

Procedure DrawCircle(CenterX, CenterY, Radius: Integer; Canvas: TCanvas; Color :TColor);

procedure PlotCircle(x, y, x1, y1: Integer);
begin   Canvas.Pixels[x + x1, y + y1] := Color;   Canvas.Pixels[x - x1, y + y1] := Color;   Canvas.Pixels[x + x1, y - y1] := Color;   Canvas.Pixels[x - x1, y - y1] := Color;   Canvas.Pixels[x + y1, y + x1] := Color;   Canvas.Pixels[x - y1, y + x1] := Color;   Canvas.Pixels[x + y1, y - x1] := Color;   Canvas.Pixels[x - y1, y - x1] := Color;

end;

var   x, y, r: Integer;   x1, y1, p: Integer;

begin

  x := CenterX;   y := CenterY;   r := Radius;   x1 := 0;   y1 := r;   p := 3 - 2 * r;

  while ( x1 < y1 ) do


  begin     plotcircle (x, y, x1, y1) ;

    if (p < 0) then

      p := p + 4 * x1 + 6

    else


    begin       p := p + 4 * ( x1 - y1 ) + 10 ;       y1 := y1 - 1 ;

    end;

    x1 := x1 + 1 ;

  end;


  if (x1 = y1) then     plotcircle( x, y, x1, y1) ;

end;

Вы хотите сделать презентацию своей продукции в выгодном свете? Тогда обязательно закажите качественное изготовление каталогов. Ваш товар представят красочные информативные страницы.