I have a set of xy coordinates in a 2d array - I want to expand them from the centre, but when I have a large array (1500 pairs) the process slows down. In a browser it takes a couple of seconds - how can I speed this up ?
var xy = [[1,2],[2,6],[7,4]]; //starting coordinates - triangle
var scaled = applyScaleFromCentre(xy,[0,0],2) // coords, centre, scale factor
console.log(scaled);
console.log(scaleFromCentre(list[0],[0,0],2))
//>> [[2, 4], [4, 12], [14, 8]] - expanded array
function scaleFromCentre(arr, centre, scale) {
console.log(arr,centre,scale);
var result = [];
var diffX = centre[0] - arr[0];
var diffY = centre[1] - arr[1];
//console.log(diffX, diffY);
diffX = diffX * -1;
diffY = diffY * -1;
console.log(diffX, diffY);
diffX = diffX * scale;
diffY = diffY * scale;
return [centre[0] + diffX, centre[1] + diffY];
}
////////////////////////////////////////////////////////////////////////////
function applyScaleFromCentre(arr, centre,scale) {
// var centre = getCentre(arr);
var result = [];
for (var x = 0; x < arr.length; x++) {
//console.log(arr[x]);
//console.log(scaleFromCentre(arr[x],centre,0.5));
result.push(scaleFromCentre(arr[x], centre, scale));
}
return result;
}