跳至内容

d3-polygon

此模块为二维多边形提供了一些基本几何运算。每个多边形都表示为一个二维数组数组 [​[x0, y0], [x1, y1], …],并且可以是闭合的(其中第一个点和最后一个点相同)或开放的(其中它们不同)。通常,多边形的顺序为逆时针顺序,假设坐标系中原点位于左上角。

polygonArea(polygon)

js
d3.polygonArea([[1, 1], [1.5, 0], [2, 1]]) // -0.5

源代码 · 返回指定 polygon 的带符号面积。如果多边形的顶点按逆时针顺序排列(假设坐标系中原点位于左上角),则返回的面积为正;否则为负或零。

polygonCentroid(polygon)

js
d3.polygonCentroid([[1, 1], [1.5, 0], [2, 1]]) // [1.5, 0.6666666666666666]

源代码 · 返回指定 polygon质心

polygonHull(points)

js
d3.polygonHull(points) // [[3.0872864263338777, -1.300100095019402], [1.6559368816733773, -2.5092525689499605], …]

源代码 · 使用 安德鲁单调链算法 返回指定 points凸包。返回的凸包表示为一个数组,其中包含以逆时针顺序排列的输入 points 的子集。如果 points 的元素少于三个,则返回 null。

polygonContains(polygon, point)

js
d3.polygonContains([[1, 1], [1.5, 0], [2, 1]], [1.5, 0.667]) // true

源代码 · 如果且仅当指定 point 位于指定 polygon 内部时返回 true。

polygonLength(polygon)

js
d3.polygonLength([[1, 1], [1.5, 0], [2, 1]]) // 3.23606797749979

源代码 · 返回指定 polygon 周长的长度。