2016-09-30 28 views
1

3Dで三角形のストリップがあります(図を参照)。三角形は1つの平面にはありません。3Dトライアングルストリップを平坦化するアルゴリズム

enter image description here

私はすべての三角形が最初の三角形の平面にあるように、三角形ストリップを平らにしたいと思います。

第2の三角形をその接続エッジの周りで第1の三角形と一緒に回転させて、最初の三角形と平面になるように計画します。それから、私は他のすべての三角形がすべて平面になるまでこのメソッドを続けます。

  1. 私はそれを行うための高速アルゴリズムを探しています。
  2. 三角形ストリップを平坦化する他の方法はありますか?
+0

を計算し、平面でC'=P'[N]を構築するには

t = DotProduct(AC, AB)/DotProduct(AB, AB) 

がこの主題にあなたの前に、興味深い質問を分解するの一部である(http://stackoverflow.com/questions/39691737/algorithm-to-the-surface-of-aの2点間の最短経路を計算する。もしそうなら、それは合理的な考えだと思うが、最短経路にはならない。 – danh

+0

また、これを解決する前に、適切なストリップを見つけて平坦化する必要があります。それも簡単ではない。 – danh

+0

@ダンあなたのコメントありがとう。はい、最後に私は最短経路が必要です。私は、さまざまな本、論文、そしてスタックオーバーフローの議論を見ました。これは簡単な作業ではないようです。しかし、私は問題を複合メッシュから、三角形(20未満)の三角形のストリップに減らすことができるので、ストリップを平坦化することが解決策になると思いました。それとももっと良い方法がありますか? – user3384674

答えて

1

すべての三角形を回転させるだけの場合は、次の三角形をすべて回転させて、ジオメトリを変更しないでください。

この代わりに、三角形の頂点の相互の位置を保存し、それらを平面に復元することができます。 N番目の点C=P[N]計算及び格納Lenについて

- それの長さが線AB(A=P[N-2], B=P[N-1]

Len = VectorLength(VectorProduct(UnitAB, AC)) 

enter image description hereに投影は次のとおり

可能な方法(I頂点番号が連続的であると仮定する)

この行におけるこの投影の位置(パラメータtとして)。私はこの質問を推測している

​​
0

これを行う最速の方法は 1)最初の三角形 2によって定義される平面の方程式を計算)プロジェクトのすべての残りのポイントこの平面上に

+0

あなたの答えをありがとう。プロジェクションをどのように行うのか説明してください。 – user3384674

+1

私はOPがメッシュを投影するのではなく回転することを望んでいると思います。三角形の平面の1つが最初の三角形に対して90度の角度にある場合、投影は三角形ではなく線分になります – danh

+0

http://stackoverflow.com/questions/9605556/how-to-project-a 3d-point-to-a-3d-plane – Trifon

1

はあなただけ移動しようとしている点に注意してください一度に1つのポイント。各三角形は前のものと2つの点を共有しているので、遠い点のみが移動する必要があり、他の2つの点で作成された軸の周りを移動して目的の面になります。完了するまでこのプロセスを繰り返します。

関連する問題