No es tan facil dibujar una espiral como dibujar un circulo o un rectangulo. En el caso de la espiral no queda mas remedio que dibujarla nosotros linea a linea. Aqui te dejo un ejejmplo de como podria ser, seguro que se puede mejorar mucho el algoritmo, pero solo es para darte una idea.
Código Delphi
[-]
procedure Espiral(Canvas: TCanvas; X,Y,Ancho: Integer; V: Real);
var
i: integer;
begin
Ancho:= Ancho * 16;
V:= (2*V*pi)/Ancho;
Canvas.MoveTo(x,y);
for i:= 1 to Ancho do
begin
Canvas.LineTo(x + (Round(i*cos(V*i))) shr 4,y + (Round(i*sin(V*i)) shr 4));
end;
end;
Donde Canvas es donde la quieres dibujar, X e Y son las coordenadas del punto central, ancho es la distancia desde el centro a uno de sus extremos y V es el numero de vueltas que da la espiral. Por ejemplo:
Código Delphi
[-]
Espiral(Canvas,200,200,200,32);