Ver Mensaje Individual
  #4  
Antiguo 25-04-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
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);
Responder Con Cita