forked from: flash on 2013-1-21
forked from flash on 2013-1-21 (diff: 42)
ActionScript3 source code
/**
* Copyright yurij.shaulov ( http://wonderfl.net/user/yurij.shaulov )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9iVt
*/
// forked from yurij.shaulov's flash on 2013-1-21
package {
import flash.events.MouseEvent;
import flash.display.AVM1Movie;
import flash.text.TextField;
import flash.trace.Trace;
import frocessing.display.F5MovieClip2D;
public class FractalSample extends F5MovieClip2D
{
private var shape_size:Number;
private var r1:Number;
private var r2:Number;
private var r3:Number;
private var t:TextField = new TextField();
private var pp:Number;
public function FractalSample()
{
stage.addEventListener(MouseEvent.CLICK, dr);
}
public function dr(e:MouseEvent):void{
stroke(0, 0.5);
colorMode(RGB, 30, 1, 1);
beginFill(Math.random() * 0xFFFFFF);
//noFill();
translate(mouseX, mouseY);
shape_size = Math.random()*100;
r1 = shape_size;
r2 = r1/2;
r3 = r2*Math.sqrt(3);
draw_shapes(6);
}
private function draw_shapes(n:int):void{
if(n-- <= 0) return;
var rn:int = 3;
scale(0.5);
for (var i:int = 0; i < rn; i++){
pushMatrix();
translate(0,-shape_size);
triangle(0,-r1,r3,r2,-r3,r2);
var pp:Number = (r1+r2+r3)/2;
trace(pp)
draw_shapes(n);
popMatrix();
rotate(2*Math.PI/rn);
}
t.x=50;
t.y=50;
t.width=100;
t.text=""+Math.sqrt(pp*(pp-r1)-(pp-r2)-(pp-3));
addChild(t);
}
}
}