d3-polygon
Этот модуль предоставляет несколько основных геометрических операций для двумерных многоугольников. Каждый многоугольник представлен как массив массивов из двух элементов [[x1, y1], [x2, y2], …], и может быть замкнутым (где первая и последняя точки совпадают) или открытым (где они не совпадают). Обычно многоугольники упорядочены против часовой стрелки, предполагая систему координат, где начало координат ⟨0,0⟩ находится в верхнем левом углу.
Установка
Если вы используете npm, npm install d3-polygon. Вы также можете загрузить последнюю версию на GitHub. Для обычного HTML в современных браузерах импортируйте d3-polygon из Skypack:
<script type="module">
import {polygonHull} from "https://cdn.skypack.dev/d3-polygon@3";
const hull = polygonHull(points);
</script> Для устаревших сред вы можете загрузить UMD-пакет d3-polygon с CDN на основе npm, такого как jsDelivr; экспортируется глобальная переменная d3:
<script src="https://cdn.jsdelivr.net/npm/d3-polygon@3"></script> <script> const hull = d3.polygonHull(points); </script>
Справочник API
d3.polygonArea(polygon) <>
Возвращает алгебраическую площадь указанного многоугольника. Если вершины многоугольника упорядочены против часовой стрелки (предполагая систему координат, где начало координат ⟨0,0⟩ находится в верхнем левом углу), возвращаемая площадь положительная; в противном случае она отрицательная или нулевая.
d3.polygonCentroid(polygon) <>
Возвращает центр масс указанного многоугольника.
d3.polygonHull(points) <>
Возвращает выпуклую оболочку указанных точек, используя алгоритм монотонной цепи Эндрю. Возвращаемая оболочка представлена как массив, содержащий подмножество входных точек, упорядоченных против часовой стрелки. Возвращает null, если points содержит меньше трех элементов.
d3.polygonContains(polygon, point) <>
Возвращает true тогда и только тогда, когда указанная точка находится внутри указанного многоугольника.
d3.polygonLength(polygon) <>
Возвращает длину периметра указанного многоугольника.
© 2010–2023 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-polygon