2017-04-25 2 views
0

モデルのノードに穴があるかどうかを認識する方法はありますか?モデル内のノードの形状にエッジまたは穴を見つける

たとえば、壁やその他の開口部に窓があるかどうか、その開口部とその位置がいくつあるかを知りたいとします。

ノードのポリゴンを反復しようとしましたが、ノードの重心と標準をとり、不連続性を見つけようとしましたが、高い信頼性の結果は得られません。

また、エッジ以外の直線を数えようとしましたが、壁の中央に直線が表示されることもあります。

これを行う別の方法はありますか? Three.jsにメッシュのエッジをカウントする組み込み関数があるのでしょうか?

+0

この記事をチェックしてください[ここ](https://aboosbox.wordpress.com/2017/04/17/three-js-for-absolute-beginners/) –

+0

@Aboopallikaraこれはどのように関連していますか? – shinzou

+0

[EWS](http://www.devdept.com/eyeshot/webservice)を検討しましたか?モデルをXMLに変換し、外側と内側の面ループのようなすべてのBRepデータにアクセスできます。 – abenci

答えて

1

おそらく非常に簡単な方法でエッジなどを数えることができますが、非常に単純なジオメトリと例外的なケースを除いては、あまり役に立ちません。

より一般的な解決策として、頂点、エッジ、法線などを使用してポリゴンからソリッドモデルを生成することが最善の方法だと思います。また、ソリッドで解析を行うことができる3Dジオメトリライブラリそのトポロジここで

は "jsの3Dブール"

https://duckduckgo.com/?q=js+3d+boolean

FinalMeshブール3Dライブラリを検索するときに思いついた最初のものである:

http://finalmesh.com/boolean3d.htm

この1つは、それが処理できることを言います穴を削除したり、余分なポイントを削除したり、三角形からポリゴンを生成したりするなど、穴を持つポリゴンを最適化して最適化します。ポリゴンPが与えられ

、あなたはP.

内のすべての開口部を得るために、QからPを引いた後、穴のないポリゴンQを生成するために、その穴を削除することができ、私は、利用可能な多くの人がそこにあると確信していますあなたが評価して比較するためにも。

+0

ありがとう、いいアイデアだが、Finalmeshにはjsライブラリ、オフラインのソフトウェア、そしてC++ライブラリしかない。あなたが推薦する別の図書館はありますか? – shinzou

+0

ああ申し訳ありませんが、私は気付かなかった。自分で検索してみてください。この検索文字列はうまくいくかもしれません:["javascript library boolean operations 3d"](https://duckduckgo.com/?q=javascript+library+boolean+operations+3d)。たとえば、[csg.js](https://evanw.github.io/csg.js/)が見つかります。 –

+0

これらの他のstackoverflowスレッドもチェックしてください: - [three.jsは2つの図形を1つに結合します](https://stackoverflow.com/questions/8322759/three-js-bind-two-shapes-together-as-one) - [three.jsで動的なcsg操作を行う方法](https://stackoverflow.com/questions/22138151/how-to-do-dynamic-csg-operation-with-three-js) –

関連する問題