// Einfache Konstruktion einer gleichmäßigen Spirale. "X" und "Y" legen
// den Mittelpunkt fest.



// Getestet mit D4 unter XP


 
procedure Spirale(Cnv: TCanvas; x, y: Integer; Abstand, Windungen, Dicke: Byte; 
  Farbe: TColor; Uhrzeigersinn: Boolean); 
var z, i, j, a, b: Integer; 
begin 
  Cnv.pen.color := Farbe; 
  Cnv.pen.width := Dicke; 
  for z := 0 to pred(Windungen) do begin 
    i := succ(z) * Abstand; 
    j := trunc((z + 0.5) * Abstand); 
    if Uhrzeigersinn then begin 
      a := x + i; 
      b := x - i; 
    end else begin 
      a := x - i; 
      b := x + i; 
    end; 
    Cnv.Arc(x - Abstand * z, y - j, x + i, y + j, a, y, b, y); 
    Cnv.Arc(x - i, y - i, x + i, y + i, b, y, a, y); 
  end; 
end; 
 
// Beispielaufruf 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Spirale(Canvas, 300, 200, 9, 7, 1, clred, true); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke