4

私はJavaプロジェクトの魔女に取り組んでいますが、本当に私を殺しています。さまざまなフォーラムで数日間調査し、本当に必要なものを探した後、あなたの助けを求めるようになりました.

私のデータ:

  • .ply ファイル (多数の三角形で構成される 3D 形状を含む)
  • 点 (3D 座標)

この点が複雑な 3D 形状の中に含まれているかどうかを知りたいです。

この問題を 2 つの小さな問題に分割しました。

  • 複雑な 3D 形状をメモリ内で表現するにはどうすればよいですか? (私はいくつかのライブラリを見つけましたが、実行したいタスクには非常に複雑に思えます: Java3D、JBullet、JME3...) 今のところ、Java アプリケーションにオブジェクトを表示させたくありません。

  • この点が 3D 形状の内側にあるかどうかを知るにはどうすればよいですか? (点から始まる3Dベクトルを作って、形状との交点数を数えようと思ったのですが、やり方がわかりませんし、魔女のライブラリを使えますか?)

もっと簡単な方法があるかもしれません。私は今本当に立ち往生しており、カスタムライブラリを書かずにこれが可能であればいいのですが...

(私の文章でごめんなさい、私は英語ではありません^^)

私を助けてくれてありがとう。

4

1 に答える 1

0

ここに 1 つのアプローチがあります。最高でも最速でもありませんが、何かが機能するようになると、改善が容易になります。

複雑な 3D 形状をメモリ内で表現するにはどうすればよいですか?

クイックでダーティな PLY ファイル形式パーサーを実装します。PLY 形式の仕様は次のとおりです。データをロードして内部に保存します。つまり、X、Y、Z ごとの配列です。これはすべて単純な Java です。

この点が 3D 形状の内側にあるかどうかを知るにはどうすればよいですか?

ポイントと他の任意のポイントに基づいて線を定義します。ポリゴンごとに、平面と交差する場所を特定し (参考)、交点がポリゴンの内側にあるか外側にあるかを特定します(参考)。あなたが提案したように、交差点の数を数えて、ポイントが3D形状の内側にあるか外側にあるかを判断します.

于 2013-04-03T22:43:44.043 に答える