MCPcopy Create free account
hub / github.com/Stanko/offset-polygon / createPolygon

Function createPolygon

docs/src/offset-polygon.js:18–53  ·  view source on GitHub ↗
(vertices)

Source from the content-addressed store, hash-verified

16 };
17}
18function createPolygon(vertices) {
19 const edges = [];
20 let minX = vertices.length > 0 ? vertices[0].x : void 0;
21 let minY = vertices.length > 0 ? vertices[0].y : void 0;
22 let maxX = minX;
23 let maxY = minY;
24 for (let i = 0; i < vertices.length; i++) {
25 const vertex1 = vertices[i];
26 const vertex2 = vertices[(i + 1) % vertices.length];
27 const outwardNormal = outwardEdgeNormal(vertex1, vertex2);
28 const inwardNormal = inwardEdgeNormal(vertex1, vertex2);
29 const edge = {
30 vertex1,
31 vertex2,
32 index: i,
33 outwardNormal,
34 inwardNormal
35 };
36 edges.push(edge);
37 const x = vertices[i].x;
38 const y = vertices[i].y;
39 minX = Math.min(x, minX);
40 minY = Math.min(y, minY);
41 maxX = Math.max(x, maxX);
42 maxY = Math.max(y, maxY);
43 }
44 const polygon = {
45 vertices,
46 edges,
47 minX,
48 minY,
49 maxX,
50 maxY
51 };
52 return polygon;
53}
54function edgesIntersection(edgeA, edgeB) {
55 const den = (edgeB.vertex2.y - edgeB.vertex1.y) * (edgeA.vertex2.x - edgeA.vertex1.x) - (edgeB.vertex2.x - edgeB.vertex1.x) * (edgeA.vertex2.y - edgeA.vertex1.y);
56 if (den == 0) {

Callers 3

createMarginPolygonFunction · 0.70
createPaddingPolygonFunction · 0.70
offsetPolygonFunction · 0.70

Calls 2

outwardEdgeNormalFunction · 0.70
inwardEdgeNormalFunction · 0.70

Tested by

no test coverage detected