これは私がここで尋ねた最初の質問です!私が何とかそれを間違えたならば、事前にお詫びします。three.js飛行機の奇妙な現象
私は球をthree.jsに積み重ねるプログラムを書いています。
各球はランダムに生成された(一定の範囲内)のxおよびz座標で始まり、接地面上の高Y座標。球の各頂点から光線を投射して、それが既存のメッシュと交差する前にどのくらい下に落ちるかを確認します。各球について
、私はその位置に「ドロップ」して、それは遠くに落ちることができる場所を確認、80点の異なるランダムXZ位置にそれをテストし、そして。
これは、このようなバブルの塔を作成することを意図している:しかし、私はバブルの半径が非常に小さく、大きなタワーのベース・ディメンション作るとき、この問題が発生したことに気づいた
を
私は80から再帰を断る場合、この効果はそれほど明らかです。なんらかの理由で、three.jsは球がベーススクエアの角にさらに落ちると考えるようです。原点は正方形の中心に正確にあります - おそらくこれは関連性があります。
私がレイキャスターから受け取ったすべての秋の距離をログに記録すると、実際には正方形の中心から遠ざかるほど大きくなりますが、小数点第11位または第12位に限られます。
これは私が解決しようとしている問題ではありません(私は最大のものを選ぶ前に、小数点以下10桁目までの距離を丸めることができます)。誰がなぜこれが起こっているのか知っていますか?誰かが前にこれに似た何かを見つけましたか?
EDIT:
原点は、ベース広場の中心にもはやであるように、私はすべてをシフトするために自分のコードを編集しない:
だから私は思考をで修正しています...この現象は、ボールが落下している表面に関連するものではなく、起点からの距離と関係があるでしょうか?
私はthree.jsについて何も知らないが、これが聞こえます浮動小数点精度の問題のように。素晴らしい最初の質問btw、歓迎。 – Rotem
ありがとう!これは私が大したことを知っているものではありません。浮動小数点の精度を根拠から説明する良いリソースにリンクできますか? – Martha
ユニットに使用している大きさのオーダーを増やすことができます。それは確かにX^2 + Z^2の機能のように見える – Blaise