package {
import com.polygeek.fractal.JuliaSet;
import com.polygeek.fractal.Mandelbrot;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
[SWF(width="500", height="1000", backgroundColor="0xEEEEEE" )]
public class JuliaBrot extends Sprite {
private var jSet:BitmapData;
private var jSetBMP:Bitmap;
private var mSet:BitmapData;
private var coords:TextField;
public function JuliaBrot() {
super();
var mandelSprite:Sprite = new Sprite();
addChild( mandelSprite )
mSet = Mandelbrot.makeMandel( 500, 500 );
var mSetBMP:Bitmap = new Bitmap( mSet );
mandelSprite.addChild( mSetBMP );
var axis:Sprite = new Sprite();
axis.graphics.lineStyle( 1, 0xFF0000, 0.3 );
axis.graphics.moveTo( 0, 250 );
axis.graphics.lineTo( 500, 250 );
axis.graphics.moveTo( 333, 0 );
axis.graphics.lineTo( 333, 500 );
addChild( axis );
var jSprite:Sprite = new Sprite();
jSprite.y = 500;
addChild( jSprite );
jSet = new BitmapData( 500, 500 );
jSetBMP = new Bitmap( jSet );
jSprite.addChild( jSetBMP );
mandelSprite.addEventListener( MouseEvent.MOUSE_MOVE, onMouseMove );
coords = new TextField();
coords.width = 500;
coords.x = 100;
coords.y = 380;
coords.backgroundColor = 0xFFFFFF;
coords.selectable = false;
addChild( coords );
}
private function onMouseMove( e:MouseEvent ):void {
var xPerc:Number = e.localX / mSet.width;
var yPerc:Number = e.localY / mSet.height;
var xPos:Number = int( ( ( xPerc * 1.0 ) + ( ( 1 - xPerc ) * -2.0 ) ) * 100 ) / 100;
var yPos:Number = -int( ( ( yPerc * 1.25 ) + ( (1 - yPerc) * -1.25 ) ) * 100 ) / 100;
coords.text = String( xPos + ", " + yPos);
jSet = JuliaSet.makeJuliaSet( xPos, yPos, 500, 500 );
jSetBMP.bitmapData = jSet;
}
}
}