今天修改一个BUG
下面是数据图形显示错误
利用下面代码对数据重新排序后图形显示正确
坐标点排序连线,不相交,成矩形或圆形。把数据切分成两份,相当于两条线,第一份数据正序。第二分数据倒序,首尾相连成矩形。
public LinkedList<LinkedHashMap<String, Object>> sort(LinkedList<LinkedHashMap<String, Object>> source) {
// x升序排序
Collections.sort(source, (m1,m2)-> {
double diffX = Double.valueOf(m1.get("x").toString()) - Double.valueOf(m2.get("x").toString());
if (diffX > 0) {
return 1;
}else if (diffX < 0) {
return -1;
}
return 0;
});

// 切割坐标
int middle = source.size() / 2;
// 切割成两条线
LinkedList<LinkedHashMap<String, Object>> line1 = new LinkedList<>();
LinkedList<LinkedHashMap<String, Object>> line2 = new LinkedList<>();
for(int i=0; i < source.size(); i++) {
if (i < middle ) {
line1.add(source.get(i));
} else {
line2.add(source.get(i));
}
}
// 第一条线
Collections.sort(line1, (m1,m2)-> {
double diffX = Double.valueOf(m1.get("y").toString()) - Double.valueOf(m2.get("y").toString());
if (diffX > 0) {
return 1;
}else if (diffX < 0) {
return -1;
}
return 0;
});
// 第二条线
Collections.sort(line2, (m1,m2)-> {
double diffX = Double.valueOf(m1.get("y").toString()) - Double.valueOf(m2.get("y").toString());
if (diffX > 0) {
return -1;
}else if (diffX < 0) {
return 1;
}
return 0;
});
// 矩形或圆数据
LinkedList<LinkedHashMap<String, Object>> target = new LinkedList<>();
target.addAll(line1);
target.addAll(line2);
return target;
}