2017-10-25 3 views
0

こんにちは私は運の車輪を作っています。私はアニメーションが動作しているが、各楕円の位置を検出する方法を理解しようとしているので、90度でポインタが指しているときに検出できる。ホイールを構築するために使用しているデータは、一連の16進色です。ここではここcodpenp5.jsとmatter.js運行のホイールは、どの要素がトップにあるのかを検出します。

は、ホイールに問題はあなたが順番にローテーションを設定するrevolve引数に頼っているということである事前

答えて

0

function prizes(revolve,xPosition,yPosition,data,radius,size){ 
var j = 0; 
// translate(x,y); 
    push() 
    rotate(revolve) 

for(i = 0 ; i < TWO_PI ; i+=TWO_PI/data.length) 
{ 
    let x = radius * cos(i); 
    let y = radius * sin(i); 

    fill(data[j]) 
    textSize(32); 
    ellipse(x,y,size) 
    j++; 
    } 

    pop() 
} 

感謝を構築する関数であります楕円の位置を変更する。これにより、回転後の楕円の実際の位置を把握することが難しくなります。

ポイントを回転させずにチェックすると分かりますが、イホはかなり複雑に聞こえるかもしれません。代わりに、もし私があなただったら、revolve関数を使用してキャンバス全体を回転させるのをやめ、代わりに各楕円の位置を計算するために使用します。

各楕円の実際の位置を取得したら、どの楕円が上にあるかを知ることができます。または、dist()関数を使用して、ポインタに最も近いものを見つけることができます。

+0

Matter.jsを使って各楕円をどのように回転させるかを物理エンジンでMatterを使ってゆっくりと減少させる必要があるのは間違いです。 – James

+0

@Jamesええ、間違いなく過剰殺人のように聞こえる。速度を保持する変数を使用し、それを時間の経過と共に減少させてください。 –

関連する問題