O procedimento DrawSpiral renderiza uma espiral de Arquimedes em um TCanvas. Parâmetros: canvas, coordenadas do centro, raio, largura da linha e cor.
procedure DrawSpiral(ACanvas: TCanvas; ACenterX, ACenterY: Integer; ARadius, AWidth: Double; AColor: TColor);
var i, step, angle, radius, x, y: Integer;
begin
step := Round(ARadius / 50);
for i := 0 to 50 do begin
angle := i * 10;
radius := i * step;
x := Round(ACenterX + radius * Cos(angle * Pi / 180));
y := Round(ACenterY + radius * Sin(angle * Pi / 180));
ACanvas.LineTo(x, y);
end;
ACanvas.Pen.Color := AColor;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
try
DrawSpiral(Canvas, 100, 100, 50, 2, clRed);
Image1.Picture.Assign(Canvas);
finally
Canvas.Free;
end;
end;
Nota: O snippet original tinha erro de conversão grau-para-radiano; a versão corrigida multiplica por Pi/180.
Tecnologia Eletrônica © [www.351231.com]