Показать сообщение отдельно
  #2  
Старый 07.11.2010, 13:34
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Код:
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;

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin        
DrawCircle(500, 500, 50, Canvas, clred); // х, у, радиус, канва, цвет
end;
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием