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

Function edgesIntersection

docs/src/offset-polygon.js:54–67  ·  view source on GitHub ↗
(edgeA, edgeB)

Source from the content-addressed store, hash-verified

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