2

立方体を投げて、それが45、45、0回転(角)で地面に落ちたとしましょう。今、「完璧な」世界では、立方体は原子で構成されておらず、「完璧」であり、風(または空気の動きが少ない)などはありません。そして最終的に、立方体はその上にとどまります。コーナー。しかし、私たちはそのような退屈な「完璧な」世界に住んでいません。物理エミュレーターはこれを考慮に入れる必要があり、非常にうまく機能します。したがって、立方体はその側に倒れます。

今私の質問は、それはどれくらいランダムですか?立方体は常に左側に落ちますか?または多分それはMath.random()に依存しますか?または多分それは現在の時間に依存しますか?それとも、時間はかからないカスタムランダム関数に依存しますが、シードであるため、ステージ上のオブジェクトのパラメーターに依存しますか?

なぜ私がこの質問をしているのかというと、ランダム性が時間に基づいていない場合、アニメーションを最適化するために、特定の初期位置の衝突の結果(オブジェクトが停止したとき)をキャッシュできる可能性がありますか?アニメーション全体をキャッシュした場合は気になりませんが、最終結果のみをキャッシュした場合、まったく同じ2つの状況が異なる結果に評価され、もう一方がキャッシュされたバージョンに適合しないことに驚かれる可能性があります。

Math.random関数のソースを確認することもできますが、コードが確実に最適化され、高度なランダム化が必要ないため、個人的にはfallLeft = time%2のようなものを使用します。また、コードは時間とともに変化する可能性があります。

ここではAwayPhysicsについて何も見つかりませんでした。おそらく、それは誰にとっても新しいことです。そのため、括弧の部分を追加しました。私が1つのことを想定すれば、世界は爆発しません。AwayPhysicsではそれが逆になりますが、標準は何ですか?

4

1 に答える 1

4

私は個人的に、既成の物理エンジンを使用していません。代わりに、必要なときに自分で作成するので、内部でどのように機能するかを知っています。立方体が転倒する理由は、物理エンジンが不正確であるためです。三角関数、平方根、積分などを概算することしかできないため、代わりに数桁の精度(Javascriptでは15)と推定します。たとえば、2つの完全な円を積み重ねた場合、それらの間の角度(pi / 2)は、プログラムがpiを近似する方法に基づいて、一見ランダムな値にゆっくりと変化します。最終的に、この小さなエラーは、円が互いにロールオフするにつれて大きくなり、一番上のエラーはちょうど落ちるでしょう。だから、あなたの質問に答えて、同じように投げられた場合、立方体は毎回同じように落ちるはずです、

于 2012-07-01T07:31:44.680 に答える