2

3D形状のメッシュサーフェスを定義する三角形コレクションがあります。各三角形の法線を修正して、形を外したいと思います。

私は次のことを試みていました(疑似):


1.最初の三角形の法線方向が正しい方向であることを定義します
2.次のようなDFSを使用してメッシュを通過します:
3。三角形=最初の三角形
4.triangle.getNeighboursのforeachneigbour5
.隣接する三角形と三角形の間の角度が180より大きい場合neighbor.flip()
6.三角形=ネイバー
7.ネイバーがすでに選択されている場合は、次のネイバーに
進みます8.4に再帰的に進みます。

しかし、アルゴリズムのステップ5は、角度が180より大きいかどうかがわからないため、機能しません。これは、ウィッチ方向(時計回りまたは反時計回り)を知る必要があるためです。

アルゴリズムを修正する方法を理解するのを手伝ってもらえますか?

4

1 に答える 1

6

隣人同士の角度を計算する必要はありません。三角形ABCの向きが(A->B->C)で、エッジの隣ABが三角形ABDの場合、エッジの向きが反対である必要がありますAB。つまり、隣接する三角形を方向付ける必要がありますB->A->D

于 2011-08-27T18:14:15.310 に答える