直線で図形

by Nyarineko
直線だけで図形を描いてみよう
Lv1:扇型の図形を描いてみよう
Lv2:中心に四角形の穴があいた図形を描いてみよう
Lv3:中心に円形の穴があいた図形を描いてみよう
※:なるべく線が重ならないようにする
♥0 | Line 72 | Modified 2010-01-04 18:42:34 | MIT License
play

ActionScript3 source code

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

//直線だけで図形を描いてみよう
//Lv1:扇型の図形を描いてみよう
//Lv2:中心に四角形の穴があいた図形を描いてみよう
//Lv3:中心に円形の穴があいた図形を描いてみよう
//※:なるべく線が重ならないようにする
package
{
    import flash.display.*;
    import flash.geom.*;
    import flash.text.*;
    import flash.utils.*;
    [SWF(width="465", height="465", backgroundColor="0xffffff", frameRate="40")]
    public class Main extends Sprite
    {
    		private var tf:TextField = new TextField();
        public function Main():void
        {
        		var time:uint = getTimer();
        		//ここを編集->
        		var rad:Number;
        		var ex:Number;
        		var ey:Number;
        		
        		var i:uint;
        		for(i = 0;i <= 465;i++){
        			rad = (i*(90/465)-119) * Math.PI/180;
        			ex = 100 * Math.cos(rad);
        			ey = 100 * Math.sin(rad);
        			myDrawLine(i,0,ex+465/2,ey+465/2);
        		}
        		for(i = 0;i <= 465;i++){
        			rad = (i*(90/465)-29) * Math.PI/180;
        			ex = 100 * Math.cos(rad);
        			ey = 100 * Math.sin(rad);
        			myDrawLine(465,i,ex+465/2,ey+465/2);
        		}
        		for(i = 0;i <= 465;i++){
        			rad = (465-i*(90/465)-225) * Math.PI/180;
        			ex = 100 * Math.cos(rad);
        			ey = 100 * Math.sin(rad);
        			myDrawLine(0,i,ex+465/2,ey+465/2);
        		}
        		for(i = 0;i <= 465;i++){
        			rad = (465-i*(90/465)+45) * Math.PI/180;
        			ex = 100 * Math.cos(rad);
        			ey = 100 * Math.sin(rad);
        			myDrawLine(i,465,ex+465/2,ey+465/2);
        		}
        		//ここまで<-
        		stage.addChild(tf);
        		tf.appendText("time : " + String(getTimer()-time));
        }
        //直線を引く(開始座標x,開始座標y,目標座標x,目標座標y)
        private function myDrawLine(sx:Number,sy:Number,ex:Number,ey:Number):void
        {
            var shape:Shape = new Shape();
            stage.addChild(shape);
            
            shape.graphics.lineStyle (
                2,
                0x000000,
                1,
                true,
                "none",
                "none",
                "miter"
            );
            shape.graphics.lineGradientStyle (
            		GradientType.LINEAR,
            		[0xff0000 , 0x00ff00, 0x0000ff ],
            		[0.0 , 0.5 , 1.0],
            		[0  , 127 , 255],
            		new Matrix(1,0,0,1,0,0),
            		SpreadMethod.PAD,
           	 	InterpolationMethod.LINEAR_RGB,
            		0.0
            	);

            shape.graphics.moveTo (sx, sy);
            shape.graphics.lineTo (ex, ey);
        }
    }
}