Spec-Zone.ru › D3.js 4

d3-voronoi

Этот модуль реализует алгоритм Стивен Дж. Фортуны для вычисления диаграммы Вороного или треугольной сетки Делоне для набора двумерных точек. Эта реализация в значительной степени основана на работе Рэймонда Хилла.

Диаграммы Вороного являются не только визуально привлекательными, но и практичными инструментами для взаимодействия, например, для увеличения целевой области точек на диаграмме рассеяния. См. “Strikeouts on the Rise” в The New York Times и этой многострочной диаграмме для примеров; также см. статью Тови Гроссмана о маркерах-пузырях для связанной техники. Диаграммы Вороного также могут использоваться для автоматизации позиционирования меток, а сетки Делоне полезны для вычисления смежности или группировки визуальных элементов.

Установка

Если вы используете NPM, npm install d3-voronoi. В противном случае загрузите последнюю версию. Вы также можете загрузить напрямую с d3js.org, как самостоятельную библиотеку, так и в составе D3 4.0. Поддерживаются среды AMD, CommonJS и vanilla. В vanilla-среде экспортируется d3 глобальная переменная:

<script src="https://d3js.org/d3-voronoi.v1.min.js"></script>
<script>

var voronoi = d3.voronoi();

</script>

Попробуйте d3-voronoi в вашем браузере.

Справочник API

d3.voronoi() Источник

Создаёт новый макет Вороного с параметрами доступа по умолчанию x- и y- и нулевым extent.

voronoi(data) Источник

Вычисляет диаграмму Вороного для указанных точек data.

voronoi.x([x]) Источник

Если x указано, задаёт доступ к координате x. Если x не указано, возвращает текущий доступ к координате x, который по умолчанию равен:

function x(d) {
  return d[0];
}
voronoi.y([y]) Источник

Если y указано, задаёт доступ к координате y. Если y не указано, возвращает текущий доступ к координате y, который по умолчанию равен:

function y(d) {
  return d[1];
}
voronoi.extent([extent]) Источник

Если extent указано, устанавливает область обрезки макета Вороного до указанных границ и возвращает макет. Границы extent задаются как массив [[x0, y0], [x1, y1]], где x0 — левая сторона области, y0 — верхняя, x1 — правая и y1 — нижняя. Если extent не указан, возвращает текущую область обрезки, которая по умолчанию равна null. Область обрезки необходима при использовании voronoi.polygons.

voronoi.size([size]) Источник

Псевдоним для voronoi.extent, где минимальные x и y области равны ⟨0,0⟩. Эквивалентно:

voronoi.extent([[0, 0], size]);
voronoi.polygons(data) Источник

Возвращает разреженный массив многоугольников, по одному на каждую уникальную входную точку в указанных точках data, соответствующих ячейкам в вычисленной диаграмме Вороного. Эквивалентно:

voronoi(data).polygons();

См. diagram.polygons для более подробной информации. Примечание: требуется extent.

voronoi.triangles(data) Источник

Возвращает треугольную сетку Делоне указанного массива data в виде массива треугольников. Каждый треугольник — массив из трёх элементов из data. Эквивалентно:

voronoi(data).triangles();

См. diagram.triangles для более подробной информации.

voronoi.links(data) Источник

Возвращает треугольную сетку Делоне указанного массива data в виде массива связей. Каждая связь имеет source и target атрибуты, ссылающиеся на элементы в data. Эквивалентно:

voronoi(data).links();

См. diagram.links для более подробной информации.

Диаграммы Вороного

diagram Источник

Вычисленная диаграмма Вороного, возвращаемая voronoi, имеет следующие свойства:

  • edges — массив рёбер.
  • cells — разреженный массив ячеек, по одной на каждую уникальную входную точку.

Для каждого набора совпадающих входных точек одна из точек выбирается произвольно и ей назначается связанная ячейка; записи других совпадающих входных точек отсутствуют в возвращаемом разреженном массиве.

diagram.polygons() Источник

Возвращает разреженный массив многоугольников, обрёзанных до extent, по одному на каждую ячейку (каждую уникальную входную точку) в диаграмме. Каждый многоугольник представлен как массив точек [x, y], где x и y — координаты точки, и data поле, которое ссылается на соответствующий элемент в data. Многоугольники открытые: они не содержат заключительной точки, дублирующей первую точку; треугольник, например, представляет собой массив из трёх точек. Многоугольники также идут против часовой стрелки, предполагая, что начало координат ⟨0,0⟩ находится в левом верхнем углу.

Для каждого набора совпадающих входных точек одна из точек выбирается произвольно и ей назначается связанный многоугольник; записи других совпадающих входных точек отсутствуют в возвращаемом разреженном массиве.

diagram.triangles() Источник

Возвращает треугольную сетку Делоне указанного массива data в виде массива треугольников. Каждый треугольник — массив из трёх элементов из data. Так как треугольная сетка вычисляется как двойственная к диаграмме Вороного, и диаграмма Вороного обрезается областью extent, возвращается подмножество треугольной сетки Делоне.

diagram.links() Источник

Возвращает треугольную сетку Делоне указанного массива data в виде массива связей, по одной для каждого ребра в сетке. У каждой связи есть следующие атрибуты:

  • source — исходный узел, элемент в data.
  • target — целевой узел, элемент в data.

Так как треугольная сетка вычисляется как двойственная к диаграмме Вороного, и диаграмма Вороного обрезается областью extent, возвращается подмножество связей треугольной сетки Делоне.

diagram.find(x, y[, radius]) Источник

Возвращает ближайшую точку к точке [x, y]. Если указан radius, учитываются только точки в пределах radius.

См. пример Филиппа Ривьера в bl.ocks.org/1b7ddbcd71454d685d1259781968aefc.

cell

Каждая ячейка в диаграмме — объект со следующими свойствами:

  • site — точка связанной входной точки ячейки.
  • halfedges — массив индексов в diagram.edges, представляющий многоугольник ячейки.
site

Каждая точка в диаграмме — массив [x, y] с двумя дополнительными свойствами:

  • index — индекс точки, соответствующий связанной входной точке.
  • data — входные данные, соответствующие этой точке.
edge

Каждое ребро в диаграмме — массив [[x0, y0], [x1, y1]] с двумя дополнительными свойствами:

  • left — точка слева от ребра.
  • right — точка справа от ребра; null для ребра обрезанной границы.

© 2010–2017 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-voronoi

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API