function circleAnimationstep(CircleSet, NowCircle) {
var period = 10 * 1000; // 12 seconds
var milliseconds = (new Date()).getTime(); // stream of MS
var progress = (milliseconds % period) / period; // stream mod 12 seconds / 12 [0-1]
var scalemin = 100
var scalemax = 700
var scale = rangedCos(
radianize(progress) , // time 0-2pi
8, // frequency >= 1
radianize(NowCircle/50), // phaseshift 0-2pi
scalemin, scalemax); // lo, hi
CircleSet[NowCircle]._x = rangedSin(
radianize(progress), // time 0-2pi
3 , // frequency >= 1
radianize(NowCircle/50) , // phaseshift 0-2pi
CircleSet[NowCircle]._width, Stage.width - CircleSet[NowCircle]._width);// lo, hi
CircleSet[NowCircle]._y = rangedSin(
radianize(progress) , // time 0-2pi
2 , // frequency >= 1
radianize(NowCircle/100) , // phaseshift 0-2pi
CircleSet[NowCircle]._width, Stage.width - CircleSet[NowCircle]._width);// lo, hi
// this one does distance formula
//CircleSet[NowCircle]._alpha = Math.sqrt( (Math.pow((CircleSet[NowCircle]._x - 200),2)) + (Math.pow((CircleSet[NowCircle]._y - 200),2)) ) * .5;
// this one relates opacity to scale
CircleSet[NowCircle]._alpha = ((scalemax - CircleSet[NowCircle]._xscale) / scalemax) * 100 + 5;
// this one does some sine phase stuff
//CircleSet[NowCircle]._alpha = rangedSin(radianize(progress), 6 , radianize(NowCircle/25) , 0, 100);
function rangedSin(t, f, p, lo, hi) {
// t = time (varying value, should range [0,2PI])
// f = frequency (waves per time, >= 1.0)
// p = phase shift (affects timing of wave, should range [0,2PI])
// lo = lower bound of arbitrary range
// hi = upper bound of arbitrary range
var a = (hi - lo) * .5;
var mid = lo + a;
return mid + (a * Math.sin(f * t + p));
}
function rangedCos(t, f, p, lo, hi) {
// t = time (varying value, should range [0,2PI])
// f = frequency (waves per time, >= 1.0)
// p = phase shift (affects timing of wave, should range [0,2PI])
// lo = lower bound of arbitrary range
// hi = upper bound of arbitrary range
var a = (hi - lo) * .5;
var mid = lo + a;
return mid + (a * Math.cos(f * t + p));
}
function radianize(x) {
return (x * (2 * Math.PI));
}
function updateFrame() {
for (var j = 0; j < circles.length; j++) {
circleAnimationstep(circles, j);
}
}