6

2 つの 3D オブジェクトが与えられた場合、1 つが 2 つ目のオブジェクトの内側に収まるかどうか (およびコンテナー内のオブジェクトの位置を見つける方法) を見つけるにはどうすればよいでしょうか。

オブジェクトはコンテナに合わせて移動および回転する必要がありますが、それ以外の変更は行わないでください。

追加の合併症:

  1. 同じ状況 - ただし、適切に一致しない場合でも、最適なソリューションを探します (コンテナーに収まらないオブジェクトのボリュームを最小限に抑えます)。

  2. 弾性オブジェクトのサポート - オブジェクトの「歪み」を最小限に抑えながら最適なフィットを見つけます

これはかなり一般的な質問です。完全な解決策は期待できません。関連する論文\記事\ライブラリ\ツールへのポインタは役に立ちます

4

5 に答える 5

0

これはかなり難しい問題のようです。考えられるアプローチは、変換を提案するためのヒューリスティックを用意することであり、チェックするよりも良い方法です。変換によってオブジェクトが内部からわずかに移動する場合(たとえば、一部)は、変換にわずかに調整してテストします。オブジェクトが「ロット」アウトの場合(たとえば、両側の同じ/すべての軸上)、新しいヒューリスティックな推測を行います。

ヒューリスティックの一般的な考え方。同じピクセルサイズのオブジェクトのラスタライズを行います。オブジェクトボリュームの八分木にすることができます。ピクセル間の連結グラフを作成します。グラフ間のサブグラフの同形性を確認します。その位置よりもサブグラフがある場合は、テスト用です。

このアプローチは、90度の回転もサポートします。

一部のテストは、グラフでも実行できます。サブグラフのすべてのボリュームネイバーがより大きなグラフにある場合、オブジェクトはにあります。

一般に、これは「洗練された」境界ボックスアプローチです。

于 2013-01-13T13:21:04.103 に答える
0

これはおそらく理想的とは言えない方法の1つです。

1つの形状の位置(3D空間内)を固定してみることができます。その形状の上に他の形状を配置します。次に、ある形状のポイントを別の形状のポイントに接続するリンクを作成します。次に、リンクが同じようにきつく引っ張られたときに何が起こるかをシミュレートします。固定されていないポイントを、安定するまで回転および平行移動させます。

フィットが十分に緩い場合は、3つのリンク(3Dの最小リンク数)のみを使用して、可能なすべての組み合わせを試すことができます。ただし、よりタイトにフィットするには、より多くのリンクが必要になります。おそらく、ポイントの数が最も少ない形状のすべてのポイントにリンクを配置するのに十分です。これは、リンクを配置する方法を決定するためのいくつかの方法を意味しますが、これは簡単ではありません。

于 2013-01-13T00:07:18.550 に答える