두 경로가 서로 다른 점을 비교해야합니다.두 개의 서로 다른 경로의 점을 비교하는 방법 (점의 배열)
내 문제는 두 경로의 시작점이 다릅니다. 이 경로는 단순한 직사각형이 아니므로 가장 작은 x 및 y 값을 기반으로 배열을 재정렬 할 수 있다고 생각하지 않습니다.
나는 이것을 시도 :
function orderPoints(points) {
var smallestX;
var smallestY;
var smallestIndex;
for (var i = 0; i < points.length; i++) {
if (!smallestX) {
smallestX = points[i].x;
smallestIndex = i;
smallestY = points[i].y;
} else {
if (points[i].x < smallestX && points[i].y < smallestY) {
smallestX = points[i].x;
smallestY = points[i].y;
smallestIndex = i;
}
}
}
//reorder array
var newArray = [];
for (var i = smallestIndex; i < points.length; i++) {
newArray.push(points[i])
}
for (var i = 0; i < smallestIndex; i++) {
newArray.push(points[i])
}
//console.log(newArray)
return newArray;
}
이 작동하지 않습니다. 나는이 두 경로가 매우 유사하다는 것을 알고 아주 작은 차이로 끝나야 만합니다. 그러나 내가 얻은 차이는 틀린 것처럼 보입니다. 그래서 두 지점 배열의 '출발점'이 잘못되었다고 생각합니다. 어떤 아이디어? https://jsfiddle.net/thatOneGuy/5b3646zj/
두 경로는 경로의 모든 점에서 경로의 첫 번째 점을 빼서 0,0에서 시작한 것입니다. 그런 다음 두 경로의 JSON.stringify 버전이 동일한 모양 인 경우 동일한 경로 여야합니다. – Shilly
@Shilly 두 경로의 시작점이 다르므로 어떻게 작동하는지 볼 수 없으므로 예제를 제공 할 수 있습니까? – thatOneGuy
'유사한 경로'를보다 정확하게 정의하십시오. 경로 # 2가 경로 # 1의 정확한 번역인지 테스트 하시겠습니까? 아니면 어떤 종류의 유사성 점수를 계산하고 싶습니까? – Arnauld