Ecco la modifica...
Ora la variazione di tonalità è data in base all'angolo, quindi girando attorno al centro otterrai tutte le tonalità, mentre la luminosità e data dal raggio, cioè dalla distanza dal centro, più ti avvicini al centro più il colore diventa bianco..
Ho incluso anche un valore di tolleranza per impostare la distanza dal centro entro la quale si ottiene sempre il bianco.
Puoi impostarlo attraverso la variabile "o" (raggio centrale).
Codice PHP:
var t:Number = 0;
var l:Number = 0;
var o:Number = .2; //raggio centrale (impostare un valore decimale da 0 a 1)
var c:Color = new Color(mc_sfondo);
function getrgb(t:Number, l:Number):Number {
t = limit(t, 0, 1);
l = limit(l, 0, 1);
return Number('0x'+colorcomponent(t, l, 0.5)+colorcomponent(t, l, -1/6)+colorcomponent(t, l, 1/6));
}
function limit(v:Number, a:Number, b:Number):Number {
with (Math) {
return max(a, min(b, v));
}
}
function triangular(v:Number, f:Number):Number {
return Math.abs(1-Math.abs(1-(v-f)*2));
}
function colorcomponent(t:Number, l:Number, f:Number):String {
var v = (limit((limit(triangular(t, f), 1/3, 2/3)-1/3)*3, l, 1)*255).toString(16);
return v.length == 1 ? '0'+v : v;
}
function radial(x:Number, y:Number):Number {
return 1-limit(Math.sqrt(x*x+y*y)*(1+o)-o, 0, 1);
}
function angular(x:Number, y:Number):Number {
return (Math.atan2(y, x)*.5/Math.PI+1)%1;
}
mc_sfondo.onMouseMove = function() {
var xm:Number = (this._xscale*this._xmouse/this._width*0.01)*2-1;
var ym:Number = (this._yscale*this._ymouse/this._height*0.01)*2-1;
c.setRGB(getrgb(angular(xm, ym), radial(xm, ym)));
};