0

スクリプトを使用して、半径に基づいて円内にランダムなパーティクルを生成しています。次にやりたいことは、パーティクルが円のエッジに衝突するタイミングを検出することです。

円周の座標を配列に格納するには for ループを使用する必要があると思いますが、これを行うにはどのような計算が必要かわかりません。

以下の答えから私が得たものは次のとおりです。ただし、機能していないようです:

変数 par は円とともに移動するパーティクルであり、emitters には円の中心の x、y 位置が含まれ、小道具の高さには半径が含まれます。

var fromC = Math.sqrt( (par.y-(emitters[i].y ) )^2 + (par.x- (emitters[i].x))^2); 

if(fromC >= emitters[i].height){
    par.vx *= -1;
    par.vy *= -1;
}

前もって感謝します。

4

2 に答える 2

1

問題はあなたのsquare操作に^あり、JavaScriptのパワー演算子ではありません。

これを使って:

var fromC = Math.sqrt( Math.pow((par.y - emitters[i].y), 2) + Math.pow((par.x - emitters[i].x), 2) ); 

if(fromC >= emitters[i].height){
    par.vx *= -1;
    par.vy *= -1;
}
于 2013-01-27T15:26:27.600 に答える
0

ポイントと円の中心の間の距離を計算するだけです (平方根( (y2-y1)^2 + (x2-x1)^2) と半径と比較します

于 2013-01-27T14:41:36.833 に答える