forked from: flash on 2012-12-1
forked from flash on 2012-12-1 (diff: 31)
ActionScript3 source code
/**
* Copyright makc3d ( http://wonderfl.net/user/makc3d )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/mgbi
*/
// forked from yonatan's flash on 2012-12-1
package {
import flash.display.*;
import flash.events.*;
public class main extends Sprite {
private var bmd:BitmapData = new BitmapData(465, 465, false, 0);
private var bmp:Bitmap = new Bitmap(bmd);
private var _x:int = 0, _y:int = 0, dsq:int = 0;
function main():void {
addChild(bmp);
addEventListener("enterFrame", frame);
}
private function frame(e:Event):void {
for(var i:int = 0; i < 1000; i++) tick();
}
private function tick():void {
bmd.setPixel(232+_x, 232+_y, calcColor(calcDepth(232+_x,232+_y)));
var dir:int = Math.random()*4;
switch(dir) {
case 0: if(_y>-200) { dsq = dsq - _y - _y + 1; _y--; } break;
case 1: if(_x< 200) { dsq = dsq + _x + _x + 1; _x++; } break;
case 2: if(_y< 200) { dsq = dsq + _y + _y + 1; _y++; } break;
case 3: if(_x>-200) { dsq = dsq - _x - _x + 1; _x--; } break;
}
}
// nothing is hard when you can copy and paste ;)
// this time from http://wonderfl.net/c/uR84/read
private var offset_x:Number = 0.0;
private var offset_y:Number = 0.0;
private var zoom:Number = 1.0;
private function calcDepth(x:int, y:int):int {
var cx:Number = (x + offset_x - bmp.width * 2.2 / 3.0)
/ (bmp.width / 2.0) / zoom;
var cy:Number = (y + offset_y - bmp.height / 2.0)
/ (bmp.height / 2.0) / zoom;
var r:Number = 0.0;
var i:Number = 0.0;
var n:int;
for (n = 0; n <= 36; n++) {
var nr:Number = r * r - i * i + cx;
var ni:Number = 2.0 * r * i + cy;
r = nr;
i = ni;
if ((r * r + i * i) > 4) break;
}
return 360 - n * 10;
}
private function calcColor(n:int):int {
import frocessing.color.ColorHSV;
var hsv:ColorHSV = new ColorHSV(n, n, n);
return hsv.value32;
}
}
}