Zoom in and out of a 2d array

Viewed 15

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;
}
0 Answers
Related