Ver Mensaje Individual
  #4  
Antiguo 03-01-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
A ver...es trigonometria: en un triangulo rectangulo (con un angulo de 90 grados o PI/2 radiantes)...

sino de angulo (phi) = lado opuesto (y) / hipotenusa (r)=> y = r*sin(phi) . Para desplazarlo al centro que tu quieras, y = cy + r*sin(phi)

cosino de angulo (phi) = lado adyacente (x) / hipotenusa (r) => x = r * cos(phi). Para desplazarlo al centro, x = cx + r*sin(phi)

para dibujar el circulo, entonces, vas encontrando las coordenadas x,y manteniendo fija la r, recorriendo 2*PI radianes (360º) "fabricando" los triangulos rectangulos

ya que estamos, prueba :

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
     x,y,i,j : integer;
     phi       : double;
begin
     x := 150;
     y := 350;
     phi := 0;
     while phi < 1000 do
     begin
          i := Round(x + phi*cos(phi));
          j := Round(y + phi*sin(phi));
          canvas.pixels[i,j] := i+j;
          phi := phi + 0.001;
     end;
end;
Imágenes Adjuntas
Tipo de Archivo: jpg Nuevo Imagen de mapa de bits.JPG (13,3 KB, 25 visitas)

Última edición por coso fecha: 03-01-2009 a las 23:30:17.
Responder Con Cita