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

Function edgesIntersection

lib/offset-polygon.js:55–68  ·  view source on GitHub ↗
(edgeA, edgeB)

Source from the content-addressed store, hash-verified

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) {
58 return null;
59 }
60 const ua = ((edgeB.vertex2.x - edgeB.vertex1.x) * (edgeA.vertex1.y - edgeB.vertex1.y) - (edgeB.vertex2.y - edgeB.vertex1.y) * (edgeA.vertex1.x - edgeB.vertex1.x)) / den;
61 const ub = ((edgeA.vertex2.x - edgeA.vertex1.x) * (edgeA.vertex1.y - edgeB.vertex1.y) - (edgeA.vertex2.y - edgeA.vertex1.y) * (edgeA.vertex1.x - edgeB.vertex1.x)) / den;
62 const isIntersectionOutside = ua < 0 || ub < 0 || ua > 1 || ub > 1;
63 return {
64 x: edgeA.vertex1.x + ua * (edgeA.vertex2.x - edgeA.vertex1.x),
65 y: edgeA.vertex1.y + ua * (edgeA.vertex2.y - edgeA.vertex1.y),
66 isIntersectionOutside
67 };
68}
69function appendArc(arcSegments, vertices, center, radius, startVertex, endVertex, isPaddingBoundary) {
70 var startAngle = Math.atan2(startVertex.y - center.y, startVertex.x - center.x);
71 var endAngle = Math.atan2(endVertex.y - center.y, endVertex.x - center.x);

Callers 2

createMarginPolygonFunction · 0.70
createPaddingPolygonFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected