我有x& y坐标(黑点),形成一个不规则的矩形。我想订购这些坐标,以便每个点按顺序连接到最近的邻居。如果我添加线条,则彼此相交的点连接。 Data
plot(xy)
lines(xy,col="red")
答案 0 :(得分:1)
这似乎是Rube Goldberg的一个装置,我不确定它有多强大,但是......
基本思想是我们将这些点分成一个" Upper"小组和"降低"通过找到介于(xmin,y(xmin))和(xmax,y(xmax))之间的线来分组。如果没有任何y值落在"错误的"这条线的一面。也就是说,如果这些点与凸性没有太大差别。
一旦我们有了上下点,我们分别按highlightedItems = [];
isHighlighted(item) {
return this.highlightedItems.indexOf(item) >= 0;
}
toggleHighlight($event, item) {
let idx = this.highlightedItems.indexOf(item);
let isControl = e.keyCode != 17;
if(isControl) {
if(idx < 0) {
this.highlightedItems.push(item);
} else {
this.highlightedItems = this.highlightedItems.slice(idx, 1);
}
} else {
this.highlightedItems.length = 0;
if(idx < 0) {
this.highlightedItems.push(item);
}
}
}
对每个组进行排序,然后我们颠倒上组的顺序,这样在我们绘制下组后,下一行将连接到最高上组的x值(而不是上组的最低x值)。
x