www.adobeshow.com
标签 Tag : 画圆弧

画圆弧的代码范例源代码及图解

<Category: ActionScript 3.0, Adobe, Flash> 发表评论
as
--------------------------------------------------------------------
var n:Number=Math.ceil(Math.abs(angle) / 45);
var angleA:Number=angle / n;
angleA=angleA * Math.PI / 180;
startFrom=startFrom * Math.PI / 180;
-----------------------------------------------------------
private function Line(Event:MouseEvent) {

    if (rot) {

        _shape.rotation=Math.atan2(stage.mouseY - _shape.y,stage.mouseX - _shape.x) * 180 / Math.PI;

        //以下为画弧

        var center:Point=new Point(_shape.x,_shape.y);
        //圆心

        var angle:Number=Math.atan2(stage.mouseY - center.y,stage.mouseX - center.x) * 180 / Math.PI;
        //角度

        var startFrom:Number=0;
       //0度,表示从x正轴为起点开始画弧

        var r:Number=Sliding.x + 35;
       //半径

        angle=Math.abs(angle) > 360?360:angle;

        var n:Number=Math.ceil(Math.abs(angle) / 45);

        var angleA:Number=angle / n;

        angleA=angleA * Math.PI / 180;

        startFrom=startFrom * Math.PI / 180;

        this.graphics.lineStyle(1,0x000000,1);

        this.graphics.moveTo(center.x + r,center.y);

        this.graphics.lineTo(center.x + r * Math.cos(startFrom),center.y + r * Math.sin(startFrom));

        for (var i=1; i <= n; i++) {

            startFrom+= angleA;

            var angleMid=startFrom - angleA / 2;

            var bx=center.x + r /Math.cos(angleA / 2) * Math.cos(angleMid)

            var by=center.y + r / Math.cos(angleA / 2) * Math.sin(angleMid);

            var cx=center.x + r * Math.cos(startFrom);

            var cy=center.y + r * Math.sin(startFrom);

            this.graphics.curveTo(bx,by,cx,cy);

       }

    } else {

        _shape.rotation=0;

    }

}

-----------------------------------------

本文来自: 画圆弧的代码范例源代码及图解