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

Function createPolygon

lib/offset-polygon.js:19–54  ·  view source on GitHub ↗
(vertices)

Source from the content-addressed store, hash-verified

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