質問
答えを知っている人がいる場合は、かなり具体的な質問です。つまり、BoundingSphere1.Contains(BoundingSphere2)のコンテキストでは?
大きい球の中に小さい球がある場合、小さい球は「含む」かボリューム全体のように大きな球体は、大きな球体の体積でもありますか?それはContainmentType.Containsを返しますか?
ありがとう!
解決
MSDNページから BoundingSphere.Containsメソッド BoundingSphereパラメーターを受け取ります:
現在の BoundingSphereには、指定された BoundingSphere。
ContainmentType列挙を返します
境界の範囲を示します ボリュームが交差するか、1つを含む 別。
具体的に:
含む:1つの境界を示します ボリュームにはもう一方が完全に含まれています。
Disjoint:存在しないことを示します 境界ボリューム間のオーバーラップ。
Intersects:は 境界ボリュームは部分的に重なります。
BoundingSphere1がBoundingSphere2より小さい場合、 BoundingSphere1.Contains(BoundingSphere2)
は ContainmentType.Contains の代わりに ContainmentType.Intersects の結果を返すと思いますem>結果は「完全」ではないため他を含む。一方、 BoundingSphere2.Contains(BoundingSphere1)
は、「もう一方を完全に含む」ため、 ContainmentType.Contains を返す必要があります。
編集:ドキュメントを再度確認した後、回答を更新しました。最初はあいまいに聞こえましたが、今では「完全に」の列挙の詳細に重点を置いていると思います。および「部分的に」 「含む」と「交差する」はそれぞれ、私の期待を高めます。これをテストすることはできませんが、これは理にかなっています。
他のヒント
私が知る限り、これはあなたの仮定をどのように解釈しているかです。
BoundingSphere1は大きな円です。 BoundingSphere2は小さな円です。
BoundingSphere2がBoundingSphere1に完全に含まれているとしましょう。 私が理解していることから、あなたはBoundingSphere2が「含む」と思う。 BoundingSphere1。
実際には、BoundingSphere1は「含む」 BoundingSphere2のすべてがBoundingSphere1内にあるため、BoundingSphere2。
基本的に、ある球体が別の球体内にあるかどうかを確認しようとしています。
so BoundingSphere1.contains(BoundingSphere2)はtrueになりますが、BoundingSphere2.contains(BoundingSphere1)はfalseになります。