В каком полигоне формата D3plus требуется самый большой прямоугольник? - PullRequest
0 голосов
/ 05 июня 2018

Я нашел интересную демонстрацию того, как найти самый большой прямоугольник в многоугольнике неправильной формы здесь , используя D3plus.

Я пытаюсь воссоздать это для многоугольника, над которым я работаювключен, но в настоящее время код не работает.Кажется, работает бесконечно.Код, который я использую, выглядит следующим образом:

d3.csv("data/polyPoints.csv", function(error, polyPoints) {
  if (error) return console.error(error);
  
  // coerce string values to numbers
  polyPoints.forEach(function(d) {
  	d3.keys(d).forEach(function(k) {
  		d[k] = +d[k]
  	})
  });
  
  // settings for geom.largestRect
  var rectOptions = {
  	angle: 0,
  	maxAspectRatio: 5,
  	nTries: 1

  };
  
  console.log(rectOptions);
  console.log(polyPoints);

   var lRect = d3plus.geom.largestRect(polyPoints, rectOptions);
  console.log(lRect); 
  
});

Я подозреваю, что мой многоугольник не в правильном формате.

Обновление

Я делаю успехи,Мой оригинальный объект многоугольника был взят из CSV и создал массив массивов пар ключ-значение (например, {"x": 0 "y": 1}, {"x": 2, "y": 1} ....)

Я преобразовал это в массив массивов (например, [[1,0], [2,0] ....])

Теперь код выполняется, но выводопределяет прямоугольники, которые пересекают границу исходного многоугольника.

...