0

画面全体の曲線パスで多くのオブジェクトをランダムに移動する必要があります。オブジェクトの開始パスと到達パスもランダムにする必要があります。Google で検索したところ、曲線を描くための便利なチュートリアルが 1 つ見つかりました。しかし、その曲線パスを使用してオブジェクトを移動する方法がわかりません。しかし、sinとcos thetaを使用しなければならないas3の式があると確信しています。誰かが私の問題の解決策を持っているかどうか教えてください。また、サンプルプロジェクトを入手した場合も、私にとって非常に役立ちます。そして、曲線を描くようになったリンクは次のとおりです。 http://active.tutsplus.com/tutorials/actionscript/the-math-and-actionscript-of-curves-drawing-quadratic-and-cubic-curves/?search_index=4 .

Thanks in advance.Immediate Help would be appreciated. 
4

1 に答える 1

4

あなたが言及したように、クイックアンドダーティは、極座標からデカルト座標(sinとcos)を使用することです:

import flash.events.Event;

var a:Number = 0;//angle
var ra:Number = .01;//random angle increment
var rx:Number = 100;//random trajectory width
var ry:Number = 100;//random trajectory height


graphics.lineStyle(1);
addEventListener(Event.ENTER_FRAME,function (event:Event):void{
    a += ra;//increment angle            
    rx += a;//fidle with radii otherwise it's gonna be a circle
    ry += a;//feel free to play with these
    graphics.lineTo(225 + (Math.cos(a) * rx),//offset(225,200)
                    200 + (Math.sin(a) * ry));//and use pol to car conversion

    if(a > Math.PI) reset();//reset at 180 or any angle you like
});

function reset():void{
    trace('reset');//more values to tweak here
    a = Math.random();
    ra = Math.random() * .0001;
    rx = 20 + Math.random() * 200;
    ry = 20 + Math.random() * 200;
}

乱数は、(より平らなものではなく)ほぼ丸い楕円を得るために微調整する必要がありますが、原理は同じです。

ライブラリの使用を気にしない場合は、TweenLite の BezierPluginまたはBezierThroughPluginを試してみませんか。開始点/終了点を簡単にランダム化できるはずです。

また、二次、三次、エルミート補間に関するこの古い回答の最初の部分をチェックすることもできます

私の例ではパスを描いていますが、もちろん、これらの計算された x、y 座標を使用して DisplayObject に接続し、画面上で移動することもできます。

于 2013-03-17T12:10:46.950 に答える