2016-05-10 7 views
0

ライブラリでいくつかの三角測量タスクを実行しましたPolyK単に私の単純なポリゴンの比較のためです。 私は7つの頂点を持つポリゴンを持っています。しかし、私はこのライブラリで9つのインデックス== 3つの三角形しか得られません。PolyKでの三角測量の問題

あなたはTHREE.js

にPolyK.jsの私のimplementionを参照してください。次のコードで

var pts3 = []; 
var ids2 = PolyK.Triangulate(pts3); 
for (var k = 0; k < ids2.length; k+=3) 
{ 
geometry.faces.push(new THREE.Face3(ids2[k], ids2[k + 1], ids2[k + 2])); 
} 

マイポイント配列:

(xとyの値を持つ7点)

var points = [ 
    158.56000000005588, 336.73000000044703, 
    158.60000000009313, 335.21999999973923, 
    161.589999999851, 335.3099999995902, 
    161.7799999997951, 329.820000000298, 
    155.52000000001863, 329.62000000011176, 
    155.29999999981374, 336.62999999988824, 
    158.56000000005588, 336.73000000044703 
]; 

これは現在のレスルールですTは:

enter image description here

これは期待された結果である:

enter image description here

は、ソースコード中のPolyKの使用に関する何か問題はありますか?

+0

ポイントのデータと予想される結果の画像を共有できますか?私の点の – Wilt

+0

データは、アレイのこの種である: 配列[14、X、Y] = [158.56000000005588,336.73000000044703,158.60000000009313,335.21999999973923,161.589999999851,335.3099999995902,161.7799999997951,329.820000000298,155.52000000001863,329.62000000011176,155.29999999981374,336.62999999988824,158.56000000005588,336.73000000044703 ] [Polygon](https://drive.google.com/file/d/0B5AUL4-roeC4cS1yWkRuVU1KM3c/view?usp=sharing)のようになります。 – Moehre

+0

私はわずか14ポイントではなく、7ポイントしか見ませんか? – Wilt

答えて

0

これらはポイントです:

4 _______________ 3 
|    | 
|    | 
|    | 
|    | 
|    | 
|  _______| 
|  |1  2 
|_______| 
5  0/6  

私はa fiddle hereでテストされ、あなたが言ったように動作しているようです。あなたがあなたの図面に示したものと同じ間違った結果である

[5, 6, 0, 0, 1, 2, 0, 2, 3] 

: 私は結果を取得します。

最初は、重複したポイント(0は6と同じです)を削除すると問題を解決できると思っていましたが、これも間違った結果をもたらします。

earcutまたはpoly2triのような別のライブラリを使用することをお勧めします。

また、this triangulation adapter/library on GitHub that I made for three.jsも確認してください。それはあなたの役に立つかもしれません。

+0

あなたの努力に感謝します。だから、私の場合、PolyKを使うのは無駄だと思う - 私は私の仕事でこれを言及するだろう...実際にイヤットカットを使用すると、非常に良い結果が得られます – Moehre

+0

結果:[三角測量結果](https://drive.google.com/file/d/0B5AUL4-roeC4T2FZeG14YkR3Zkk/view?usp=sharing) – Moehre

+0

@Moehre poly2tri](http://r3mi.github.io/poly2tri.js/)これらの点で、それはまた、正常に動作します: '158.56000000005588、336.73000000044703、 158.60000000009313、335.21999999973923、 161.589999999851、335.3099999995902、 161.7799999997951、329.820000000298、 155.52000000001863、329.62000000011176 、 155.29999999981374,336.62999999988824'。イヤーカットは素晴らしい、信頼性が高く、速いです。 – Wilt

関連する問題