2017-11-22 17 views
-1

2つの独立した3Dシェイプがあります。 1つは正方形であり、もう1つは円錐である。2つの3Dサーフェス間の交差

円錐が正方形の内側にあるとしましょう。コーンをどの方向に動かすと、コーンの表面がスクエアの表面に触れることがわかりますか?

誰かが表面が別の形に触れるかどうかをチェックするアルゴリズムを提案できると便利です。

私はMATLABを使用していますが、基礎となるロジックはどの言語でも評価されます。

https://in.mathworks.com/matlabcentral/answers/367565-findout-surface-to-surface-intersection-between-two-3d-shapes

+0

リンクからの解決策は何ですか?あなたの質問に対する答えは数学だと思いますか?私たちがあなたに完全なアルゴリズムを提供すると期待していますか? – Piglet

+0

私が従うかわからない...正方形は2D形状です。 3D空間のどこかに置かれた正方形を意味すると思いますか?そして "コーン"はどういう意味ですか?アイスクリームのようなハーフコーンを意味する人もいます。しかし、数学的な円錐は、その軸に沿って-∞から+∞まで伸びています。 –

+0

と、2つの図形の交差線の形状と限界に興味がありますか?それはよく知られている数学の非常に古い部分です:[円錐断面](https://en.wikipedia.org/wiki/Conic_section)。 –

答えて

0

は、円錐台が凸形状であり、そのAABBを見つけることに一生懸命ではないという事実のおかげで比較的簡単な解決策があります。

最初に、キューブが軸に合わせられるようにスペースを回転させます(そして、円錐は任意の位置にあります)。次に、基底のAABBを見つけるには、パラメトリック方程式C + Rcos t + R 'sin tを使用して、座標の最小値を得るのに十分であり、Cは中心の位置ベクトルであり、R、 R 'は2つの直交する半径である。微分を取り消すことによって、制限角度を見つけることができます。

3つの座標の極値を見つけた後、グローバルな境界ボックスは、これらの6つのポイントに頂点を加えたものを囲むボックスです。

AABBとキューブを比較することで、どの方向に衝突する前にどの距離が残っているかを知ることができます。

enter image description here

関連する問題