d3-polygon
Этот модуль предоставляет несколько основных геометрических операций для двумерных многоугольников. Каждый многоугольник представлен как массив двумерных массивов [[x1, y1], [x2, y2], …], и может быть замкнутым (в котором первая и последняя точки совпадают) или открытым (в котором они не совпадают). Обычно многоугольники упорядочены против часовой стрелки, предполагая систему координат, где начало отсчёта ⟨0,0⟩ находится в верхнем левом углу.
Установка
Если вы используете NPM, npm install d3-polygon. В противном случае, загрузите последнюю версию последней версии. Вы также можете загрузить его напрямую с d3js.org, как автономную библиотеку самостоятельную библиотеку или как часть D3 4.0. Поддерживаются среды AMD, CommonJS и vanilla. В vanilla среде экспортируется глобальная переменная d3:
<script src="https://d3js.org/d3-polygon.v1.min.js"></script> <script> var hull = d3.polygonHull(points); </script>
Попробуйте d3-polygon в вашем браузере.
Справочник по API
d3.polygonArea(polygon) <>
Возвращает площадь заданного многоугольника. Если вершины многоугольника упорядочены против часовой стрелки (при условии системы координат, где начало отсчёта ⟨0,0⟩ находится в верхнем левом углу), возвращаемая площадь положительная; в противном случае она отрицательная или нулевая.
d3.polygonCentroid(polygon) <>
Возвращает центр масс заданного многоугольника.
d3.polygonHull(points) <>
Возвращает выпуклую оболочку указанных точек, используя алгоритм монотонной цепи Эндрю. Возвращаемая оболочка представлена как массив, содержащий подмножество входных точек, упорядоченных против часовой стрелки. Возвращает null, если points содержит меньше трёх элементов.
d3.polygonContains(polygon, point) <>
Возвращает true тогда и только тогда, когда указанная точка находится внутри указанного многоугольника.
d3.polygonLength(polygon) <>
Возвращает длину периметра указанного многоугольника.
© 2010–2017 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-polygon