Processingのソースを参考にして、Flashで作るsketch練習の続き。
教材は引き続き、パリで行われたらしいProcessing workshopのソース。
ダウンロードしたProcessingのソース「01_Classes」>「_08_Arbre_Fractale」をFlashにした。
Processing workshop in Paris - code sources | v3ga
http://v3ga.net/blog/2008/04/processing-workshop-in-paris-code-sources/
再帰でフラクタルを描くやつ。画面のXマウス位置に応じて、枝の角度が変わるようになってる。
Flashで作ったけど機能としてはProcessingと同じようにできた。
Processingのやつは再帰的に線を描画していく中で、描画に対する指定が加算されていくから、特別に座標や角度の計算を気にする必要は無い。
void dessine(float x, float y, float angle) {
pushMatrix();
translate(x,y,0);
rotate(angle);
line(0,0,0,-longueur);
dessineFilles(float(mouseX)/float(width)*PI/5);
popMatrix();
}
それを、まぁFlashならではということで、それぞれの線はまっすぐ上向きで同じだけど、Spriteの入れ子入れ子で回転角度が加算されているような構造にしてみた。Spriteの配置位置は(0,0)から親Spriteの線の長さ分だけ上方向にずらす感じ。
EnterFrameMouseMoveでmouseXを取って角度が変わるけど、線の描画を毎度行ってるのではなく各Spriteの角度を変化させてる。このTree型のフラクタルの枝の角度が変わるのが楽しかったので、パラメータをいじれるようにしてみた。
今回も負荷は高め。そしてコンテンツ開始と同時に再帰再帰でフラクタルを描くから、環境によっては15秒ルールで厳しいかも。
private function draw( lineAngle:Number ) : void {
rotation = lineAngle;
//scaleX = lineAngle / 180 * 2;
drawChildren( lineAngle );
}
なんか回転だけじゃなく、適当にsacleXとかやってみたりしたら、全く予想もしない図柄になってしまった。

ソース:TreeFractal_AS3.zip
ソース:TreeFractal_AS3param.zip
