2

ポイントの量を動的にして、シェイプ内のすべてのポイントを接続する方法を理解しようとしています。

正方形を使用して説明します。4 つのポイントがあります。

a - 左上、b - 右上、c - 右下、d - 左下

そう...

var connections = [
    new Connection(a, b),
    new Connection(a, c),
    new Connection(a, d),
    new Connection(b, c),
    new Connection(b, d),
    new Connection(c, d)
];

正方形 (または四角形) 内のすべてのポイントを接続しますが、ポイントの配列 (簡単にするためにここでは abcd として表示) をループしてこれを自動的に行いたいので、任意のポリゴンで機能します。パターンを考え出し、それを for ループでいくつか実装しようとしましたが、失敗しました。私はそれが本当に簡単だと思っています...

どんな助けでも大歓迎です、ありがとう。

4

2 に答える 2

2

擬似コード:

for (var i=0; i<Shape.Count; i++) {
  for (var j=i+1; j<Shape.Count; j++) {
    List.Add(i,j);
  }
}
于 2013-03-02T07:01:29.597 に答える
2
var Connection = function (a, b) {
    console.log('Connecting ' + a + ' and ' + b);
}

var points = ['a','b','c','d','e'];

(function traverse() {
    for (var i = 0; i < points.length - 1; i += 1) {
        new Connection(points[0], points[ i + 1 ]);
    }
    points = points.slice(1);
    if (points.length > 1) {
        traverse(points);
    }
}());

それは出力されます:

Connecting a and b
Connecting a and c
Connecting a and d
Connecting a and e
Connecting b and c
Connecting b and d
Connecting b and e
Connecting c and d
Connecting c and e
Connecting d and e 

デモ: http://jsfiddle.net/1j5n5x55/

于 2013-03-02T07:05:04.937 に答える