2

我试图弄清楚如何连接形状中的所有点,点的数量是动态的。

我用一个正方形来演示,有四点:

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 回答