UNPKG

@thi.ng/geom-poly-utils

Version:

2D polygon/polyline analysis & processing utilities

19 lines (18 loc) 403 B
import { cross2 } from "@thi.ng/vectors/cross"; import { signedArea2 } from "@thi.ng/vectors/signed-area"; const polyArea2 = (pts) => { const n = pts.length - 1; if (n < 2) return 0; let res = 0; let a = pts[n]; let b = pts[0]; for (let i = 0; i <= n; a = b, b = pts[++i]) { res += cross2(a, b); } return res / 2; }; const triArea2 = signedArea2; export { polyArea2, triArea2 };