forked from: flash.geom.Matrix3Dのテスト

by bradsedito
♥0 | Line 38 | Modified 2011-10-29 12:09:47 | MIT License
play

ActionScript3 source code

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

// forked from gaziya's flash.geom.Matrix3Dのテスト
// forked from gaziya's frocessing用スケルトン
package {
    import flash.geom.Matrix3D
    import flash.geom.Vector3D
    import frocessing.display.F5MovieClip2DBmp
    import net.hires.debug.Stats
    [SWF(width=465,height=465,frameRate=30)]

    public class Main extends F5MovieClip2DBmp {
        private var _points:Array
        private var _degrees:Number = 0
        private var _axis:Vector3D = new Vector3D(1,-0.5,0)
        
        public function setup():void {
            var lengh:Number = 100
            _points = 
            [ 
                    new Vector3D(lengh,0,0),
                    new Vector3D(-lengh,0,0),
                    new Vector3D(0,lengh,0),
                    new Vector3D(0,-lengh,0),
                    new Vector3D(0,0,lengh/2)
            ]
            
            background(0)
            fill(0xff0000)
            addChild(new Stats())
        }
        
        public function draw():void {
            background(0)
            translate(width/2,height/2)
            var matrix:Matrix3D = new Matrix3D()
            matrix.prependRotation(_degrees,_axis)
            for each(var value:Vector3D in _points) {
                var vector:Vector3D = matrix.transformVector(value)
                circle(vector.x,vector.y,20 - vector.z * 0.07)
            }
            _degrees += 5
            _degrees %= 360
        }
    }
}