Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import type { Types } from '@cornerstonejs/core';
/**
* Calculates the area of an array of `Point2` points using the shoelace algorithm.
*
* The units of the area are in the same units as the points are in. E.g. if
* the points are in canvas, then the result is in canvas pixels ^2; If they are
* in mm, then the result is in mm^2; etc.
*/
export default function calculateAreaOfPoints(points: Types.Point2[]): number {
// Shoelace algorithm.
const n = points.length;
let area = 0.0;
let j = n - 1;
for (let i = 0; i < n; i++) {
area += (points[j][0] + points[i][0]) * (points[j][1] - points[i][1]);
j = i; // j is previous vertex to i
}
// Return absolute value of half the sum (half as summing up traingles).
return Math.abs(area / 2.0);
}
|