2017-09-01 39 views
1

我想保持我的观点(x,y)始终为正。将负多边形转换为正坐标 - Javascript

我与这些值的数组:

(points) [-916, 214, 10, 214, 10, 362, 200, 362, 200, 764, -916, 764] 
      X Y X Y X Y X Y X Y  X Y 

是否有可以使坐标留总是正的这些点转移到其原点的算法?

回答

1

您可以先获取最小值xy,然后用修正映射一个新阵列。

最小值

[-916, 0] 

转换

[-916, 214, 10, 214, 10, 362, 200, 362, 200, 764, -916, 764] original 
[ 0, 214, 926, 214, 926, 362, 1116, 362, 1116, 764, 0, 764] updated 

var data = [-916, 214, 10, 214, 10, 362, 200, 362, 200, 764, -916, 764]; 
 
    min = [0, 0]; 
 
    
 
data.forEach(function (v, i) { 
 
    if (v < min[i % 2]) { 
 
     min[i % 2] = v; 
 
    } 
 
}); 
 

 
console.log(min); 
 
console.log(data.map(function (v, i) { 
 
    return v - min[i % 2]; 
 
}));
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

是否有可能逆转与ABSOLU响应te再次坐标到相对位置? – baybox

+0

是的,通过存储最小值。那么你需要在循环中添加值。 –