In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: SmithChartTest

Get Adobe Flash player
by Daniel.Alberto.Bogado 11 Nov 2012
    Embed
/**
 * Copyright Daniel.Alberto.Bogado ( http://wonderfl.net/user/Daniel.Alberto.Bogado )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/3WgU
 */

// forked from son's SmithChartTest
package {
    import flash.display.Graphics;
    import flash.display.Sprite;
    [SWF(width="500", height="500", frameRate="60")]
    
    
    public class SmithTest extends Sprite {
        
        private const Z0:int = 500; //計算の都合上10倍している
        private var canvas:Sprite = new Sprite();
        
        public function SmithTest() {
            // write as3 code here..
            canvas.y = stage.stageHeight/2;
            canvas.x = stage.stageWidth/10 + stage.stageWidth/2;
            
            drawSmith();
            
            //addChild(canvas);
        }
        
        private function drawSmith():void {
            //var canvas:Sprite = new Sprite();
            var scale:int = 200;
            
            var canvasGraphics:Graphics = canvas.graphics;
            canvasGraphics.lineStyle(1);
            
            for(var i:Number = 0; i < 50; i += 1) {
                canvasGraphics.moveTo(i, j);
                for (var j:Number = 0; j < 50; j += 1) {
                    canvasGraphics.drawCircle(reGamma(i, j)*scale, imGamma(i, j)*scale, 1);
                    canvasGraphics.drawCircle(reGamma(i, j)*scale, imGamma(i, j)*scale*-1, 1);
                    //canvasGraphics.lineTo(reGamma(i, j)*200, imGamma(i, j)*200);    
                }
            }
            
            addChild(canvas);
        }
        
        private function reGamma(R:Number, X:Number):Number {
            R = R*100;
            X = X*100;
            var gamma:Number = (R*R - Z0*Z0 + X*X)/((R + Z0)*(R + Z0) + X*X);
            return gamma;
        }
        
        private function imGamma(R:Number, X:Number):Number {
            R = R*100;
            X = X*100;
            var gamma:Number = (2*X*Z0)/((R + Z0)*(R + Z0) + X*X);
            return gamma;
        }
    }
}