※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

 notice: Flash editor updated! Join the development! Thanks to MiniBuilder


forked from : makc3d's Pythagoras Tree [diff(32)]

FAVORITE BY
:
:
fractalYETインタラクティブなフラクタル。面白い。
:
wow!
FORKED
  1. // forked from makc3d's Interactive Pythagoras Tree
  2. // Interactive Pythagoras Tree
  3. package {
  4.     import flash.display.Graphics;
  5.     import flash.display.Sprite;
  6.     import flash.geom.Matrix;
  7.     import flash.geom.Point;
  8.     public class FlashTest extends Sprite {
  9.         private var count:Number = 0;
  10.         private var left:Point = new Point;
  11.         private var rotor:Matrix = new Matrix;
  12.         private var s1:Point = new Point, s2:Point = new Point;
  13.         // check out http://en.wikipedia.org/wiki/Pythagoras_tree
  14.         private function ptree (at:Point, up:Point, g:Graphics):void {
  15.             count += 1;
  16.             // draw the square according to given position and direction
  17.             left.x = -up.y; left.y = up.x;
  18.             g.beginFill (0x31007*count);
  19.             g.moveTo (at.x + up.x + left.x, at.y + up.y + left.y);
  20.             g.lineTo (at.x + up.x - left.x, at.y + up.y - left.y);
  21.             g.lineTo (at.x - up.x - left.x, at.y - up.y - left.y);
  22.             g.lineTo (at.x - up.x + left.x, at.y - up.y + left.y);
  23.             g.endFill ();
  24.             // calculate radius
  25.             var r:Point = rotor.transformPoint (up);
  26.             // calculate half-sides
  27.             s1.x = (r.x - left.x) * 0.5; s1.y = (r.y - left.y) * 0.5;
  28.             s2.x = (r.x + left.x) * 0.5; s2.y = (r.y + left.y) * 0.5;
  29.             // calculate directions
  30.             var d1:Point = new Point (-s1.y, s1.x);
  31.             var d2:Point = new Point (s2.y, -s2.x);
  32.             // calculate positions of new squares
  33.             var p1:Point = new Point (at.x + up.x + s2.x + d1.x, at.y + up.y + s2.y + d1.y);
  34.             var p2:Point = new Point (at.x + up.x + s1.x + d2.x, at.y + up.y + s1.y + d2.y);
  35.             // repeat twice
  36.             if (count < 10) {
  37.                 ptree (p1, d1, g);
  38.                 ptree (p2, d2, g);
  39.             }
  40.             count -= 1;
  41.         }
  42.         public function FlashTest() {
  43.             addEventListener("enterFrame", onEnterFrame);
  44.         }
  45.         private function onEnterFrame (e:*):void {
  46.             rotor.identity ();
  47.             rotor.rotate (2.0 * (mouseX - stage.stageWidth * 0.5) / stage.stageWidth);
  48.             graphics.clear ();
  49.             ptree (new Point (230340), new Point (0, -40), graphics);
  50.         }
  51.     }
  52. }
noswf
Get Adobe Flash Player