輪郭の作成に問題があります。
私はSTLファイルを持っています.STLファイルには多くのファセットが含まれています.ファセットを切断面と交差させることにより(Z=dz,x=y=0)
、各増分Zに線の配列があります.
しかし、線は整然としていません。それらを並べ替えて接続し、閉じた輪郭または連続したパスを形成したいです。この問題を解決するプログラムまたはコードを教えてください。
輪郭の作成に問題があります。
私はSTLファイルを持っています.STLファイルには多くのファセットが含まれています.ファセットを切断面と交差させることにより(Z=dz,x=y=0)
、各増分Zに線の配列があります.
しかし、線は整然としていません。それらを並べ替えて接続し、閉じた輪郭または連続したパスを形成したいです。この問題を解決するプログラムまたはコードを教えてください。
これは、Rock と Wozny (1) によって提示された輪郭作成のマーチング アルゴリズムを使用して行うことができます。アイデアは非常に単純です。ある面から隣の面に行進し、それらの共通エッジで交差を決定し、次の隣接面に進みます。開始面に到達するまでこれを繰り返します。そうすれば、閉じた輪郭を構築できます。より多くの等高線がある場合に備えて、高さフラグごとにエッジを訪問しました。
マーチング アルゴリズム、ソース: (1)
アルゴリズムが機能するには、メッシュのトポロジ情報が必要です。各面は、隣接する 3 つの面と 3 つのエッジを参照する必要があります。各エッジは、そのエッジを定義する 2 つの頂点と 2 つの面を参照する必要があります (1)。STL ファイルからその情報を取得する方法については、(2) を参照してください。
ソース:
(1) トポロジカル情報を利用して、スキャン ベクトルの生成効率を高めます。ロックとウォズニー (マーチング アルゴリズム)
(2) 「ファセットのバケット」からトポロジー情報を生成する。Rock と Wozny、1992 年 (STL ファイルからトポロジを作成する方法)