as3 drawing

by CaTFooD
...

@author CaTFooD
♥0 | Line 59 | Modified 2010-07-14 11:56:51 | MIT License
play

ActionScript3 source code

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

package 

{

    import flash.display.Bitmap;

    import flash.display.BitmapData;

    import flash.display.Sprite;

    import flash.events.Event;

    

    /**

     * ...

     * @author CaTFooD

     */

    public class Main extends Sprite 

    {

        private var bitmapData:BitmapData;

        private var k:Number = 0;

        private var R:Number = 200;

        private var beginX:Number = 0

        private var beginY:Number = 0;

        private var angle:Number = 0;

        private var angle_s:Number = 0;

        

        private var s_x:Number = 0;

        private var s_y:Number = 0;

        public const raids:Number = 180 / Math.PI;

        

        

        private var g:int;

        private var b:int;

        private var r:int;

        

        //改这两个

        private var r_1:int = 85;

        private var r_2:int = 60;

        public function Main():void 

        {

            if (stage) init();

            else addEventListener(Event.ADDED_TO_STAGE, init);

        }

        

        private function init(e:Event = null):void 

        {

            stage.frameRate = 1000;

            removeEventListener(Event.ADDED_TO_STAGE, init);

            // entry point

            

            bitmapData = new BitmapData(500, 500);

            var bitmap:Bitmap = new Bitmap(bitmapData);

            this.addChild(bitmap);

            r = Math.random() * 255;

            g = Math.random() * 255;

            b = Math.random() * 255;

            addEventListener(Event.ENTER_FRAME, enterframeHandler);

        }

        

        private function enterframeHandler(e:Event):void 

        {

            

            //大圆坐标

            beginX = Math.cos(angle_s / raids) * (R-r_1);
            beginY = Math.sin(angle_s / raids) * (R-r_1);
            s_x = Math.cos((angle-angle_s) / raids) * r_2;
            s_y = Math.sin((angle-angle_s) / raids) * r_2;
         
            //bitmapData.setPixel(beginX + 200, beginY + 200, 0xFF0000);    

            //bitmapData.setPixel(s_x+200, s_y+200, 0x000000);    

            bitmapData.setPixel(beginX+s_x+200, beginY-s_y+200, (r<<16|g<<8|b));            

            

            

            angle_s += 1;

            angle += (R / r_1) * 1;

            if (angle_s % 4800 == 0)

            {

                r = Math.random() * 255;

                g = Math.random() * 255;

                b = Math.random() * 255;

                r_2 += 5;

            }

            

        }

        

    }

    

}