我想保持我的观点(x,y)始终为正。

我有一个具有这些值的数组:

(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


是否有一种算法可以将这些点移至其原点,以使坐标始终保持正值?

最佳答案

您可以先获取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; }

关于javascript - 将负多边形转换为正坐标-Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45997468/

10-11 15:19