2017-09-01 9 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との応答を逆にする値テは相対的に再び調整されますか? – baybox

+0

はい、最小値を格納します。ループ内の値を追加する必要があります。 –

関連する問題