2

ユーザーがボールを打つために使用できるパドルを描画できるようにしようとしています。ただし、ボールの速度の x 成分と y 成分が壁と一致していないため、ボールを正しくバウンドさせることができないようです。どうすればこれを回避できますか?

ここでGareth Rees のアドバイスを試してみましたが、ベクトルについて十分に理解していないようです。たとえば、ベクトルに正確に何を保存するのかわかりません-方向のある値であることは知っていますが、その間にある2つのポイント、勾配、角度を保存しますか?

私が本当に必要としているのは、壁の角度と、ボールが当たったときの x 速度と y 速度を与えて、後で新しい x 速度と y 速度を見つけることです。

4

1 に答える 1

6

Gareth Rees は式を正しく理解しましたが、こちらの図と説明の方がもう少し明確です。つまり、基本的な式は次のとおりです。

Vnew = -2*(V dot N)*N + V
where
V = Incoming Velocity Vector
N = The Normal Vector of the wall

あなたはベクトル表記に慣れていないので、この式について知っておくべきことは次のとおりです。ベクトルは基本的に x,y のペアなのでV = (v.x, v.y)N = (n.x, n.y)平面は、平面に垂直な単位長さのベクトルである平面の法線によって最もよく説明されます。次に、いくつかの式、b*V = (b*v.x, b*v.y); V dot N = v.x*n.x+v.y*n.y、つまりスカラーです。とA + B = (a.x+b.x, a.y+b.y)。最後に、任意のベクトルに基づいて単位ベクトルを見つけるには、N = M/sqrt(M dot M).

サーフェスが湾曲している場合は、接触点で法線を使用します。

于 2012-04-07T16:42:47.853 に答える