Ver Mensaje Individual
  #17  
Antiguo 26-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
Hola de nuevo, y ya considerando el hilo resuelto : dejo aqui este codigo para ilustrar la idea de delphius de usar el 'cubo' RGB e ir rotando un vector de color en el.

Código Delphi [-]
procedure TForm1.FormPaint(Sender: TObject);
var
     phi,rho : double;
     m : integer;
     r,g,b : integer;
     x,y : integer;
begin
     m := TrackBar1.Position;
     phi := 0;
     while phi < PI/2 do
     begin
          rho := 0;
          while rho < PI/2 do
          begin
               r := Round(m*sin(phi));         // proyeccion del vector en r
               g := Round(m*cos(phi)*cos(rho));// proyeccion en g
               b := Round(m*cos(phi)*sin(rho));// proyeccion en b

               canvas.Pixels[20+Round(rho*100),20+Round(phi*100)] := r*$01 + g*$0100 + b*$010000;
               rho := rho + 0.01;
          end;
          phi := phi + 0.01;
     end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
     Paint;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     doublebuffered := true;
     TrackBar1.Max := 255;
     TrackBar1.Min := 0;
end;

PD: tremendo el codigo, cHackAll
Responder Con Cita