flash on 2009-10-10

by uwi
♥0 | Line 49 | Modified 2009-10-10 11:27:10 | MIT License
play

ActionScript3 source code

/**
 * Copyright uwi ( http://wonderfl.net/user/uwi )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ibZC
 */

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.getTimer;
    public class Test extends Sprite {
        private var _tf : TextField;
  
        public function Test() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);
            
            var s : int = getTimer();
            
            var xx : Number = 10 + Math.random() - 0.5;
            var xy : Number = Math.random() - 0.5;
            var vx : Number = -1;
            var vy : Number = Math.random() - 0.5;
            var omega : Number = Math.random();
            var r : Number = Math.random() * 10;
            for(var t : int = 0;t < 100;t++){
                tr(t,
                    f(xx, xy, vx, vy, omega, r, t), 
                    df(xx, xy, vx, vy, omega, r, t)
                    );
            }
                        
            var g : int = getTimer();
            tr((g - s) + " ms");
        }
        
        private function f(xx : Number, xy : Number, vx : Number, vy : Number, r : Number, omega : Number, t : Number) : Number
        {
            var xxx : Number = xx + vx * t - r * Math.cos(2 * omega * t);
            var yyy : Number = xy + vy * t - r * Math.sin(2 * omega * t);
            return xxx * xxx + yyy * yyy;
        }
        
        private function df(xx : Number, xy : Number, vx : Number, vy : Number, r : Number, omega : Number, t : Number) : Number
        {
            var s : Number = Math.sin(2 * omega * t);
            var c : Number = Math.cos(2 * omega * t);
            return 2 * t * (vx * vx + vy * vy) +
                2 * (xx * vx + xy * vy) +
                4 * omega * r * (xx * s - xy * c) +
                -vx * t * r * (-2 * omega * s + c) +
                -vy * t * r * (2 * omega * c + s);
        }

        private function tr(...o : Array) : void
        {
            _tf.appendText(o.join('\t') + "\n");
        }
    }
}