0

フラッシュでステージの中心から線を引いて、ステージの周りをインクリメントしようとしています。しかし、これを行うためにどの数学を使用するかはわかりません。これまでのところ、線は特定のポイントに出ていますが、ステージの寸法がどのようなものであっても、そのポイントを一周するように変更する方法がわかりません。

これまでのところ私はこれを持っています:

var linetox=0;
var linetoy=0;
var _stage=this;
var _stage_center_x = stage.stageWidth/2;
var _stage_center_y = stage.stageHeight/2;
trace(_stage_center_x);
function enterframe(e:Event):void {
    linetox+=10;
    linetoy+=10;
    var lineDrawing:MovieClip = new MovieClip();
    this.addChild(lineDrawing);
    lineDrawing.graphics.lineStyle(1);
    lineDrawing.graphics.moveTo(_stage_center_x,_stage_center_y);///This is where we start drawing
    lineDrawing.graphics.lineTo(linetox, linetoy);
}
this.addEventListener(Event.ENTER_FRAME, enterframe);

これは明らかに、線の終点を上下に動かし、画面の周りに描画させようとします(時計のように)

4

1 に答える 1

1
var center:Point = new Point(stage.stageWidth/2, stage.stageHeight/2);
var radius:Number = 200;
this.graphics.lineStyle(1, 0x000000, 1);

addEventListener(Event.ENTER_FRAME, drawCirc);

var _x:Number;
var _y:Number;
var _angle = -180;
var _rads = 0;
var rad_conversion:Number = Math.PI / 180;

function drawCirc($evt:Event) {
    _rads = _angle * rad_conversion;
    _x = radius * Math.cos(_rads) + center.x;
    _y = radius * Math.sin(_rads) + center.y;
    if (_angle == -180) {
        this.graphics.moveTo(_x, _y);
    } else {
        this.graphics.lineTo(_x, _y);
    }
    _angle ++;
    if (_angle >= 181) {
        removeEventListener(Event.ENTER_FRAME, drawCirc);
    }
}
于 2010-01-31T23:24:16.003 に答える