首页 > AS在FLEX下如何画半圆

AS在FLEX下如何画半圆

用FLEX,确切的说是AS代码。画圆可以用下面这样的代码:

graphics.clear();
var radius:Number = Math.min(this.width,this.height)/2;
graphics.beginFill(fillColor,fillAlpha); //填充颜色
graphics.drawCircle(width/2,height/2,radius);
raphics.endFill();

可是如果是半圆呢?或者说,我想画两个不同颜色拼起来的半圆成为一个整圆怎么办?


    graphics.beginFill(0xFF0000);
    halfCircle(graphics, 200,200, 100);
    // original circle function by senocular (www.senocular.com) from here http://www.actionscript.org/forums/showthread.php3?s=&threadid=30328
    function halfCircle(g:Graphics, x:Number,y:Number,r:Number):void {
        var c1:Number=r * (Math.SQRT2 - 1);
        var c2:Number=r * Math.SQRT2 / 2;
        g.moveTo(x+r,y);
        g.curveTo(x+r,y+c1,x+c2,y+c2);
        g.curveTo(x+c1,y+r,x,y+r);
        g.curveTo(x-c1,y+r,x-c2,y+c2);
        g.curveTo(x-r,y+c1,x-r,y);
        // comment in for full circle
        /*g.curveTo(x-r,y-c1,x-c2,y-c2);
        g.curveTo(x-c1,y-r,x,y-r);
        g.curveTo(x+c1,y-r,x+c2,y-c2);
        g.curveTo(x+r,y-c1,x+r,y);*/
    };

http://actionsnippet.com/?p=1515

【热门文章】
【热门文章】