peaks-similarity
Version:
Peaks similarity - calculate the similarity between 2 ordered arrays of peaks
29 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getIntersection = void 0;
// Adapted from: http://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect/1968345#1968345
function getIntersection(segment1, segment2) {
const p0X = segment1[0][0];
const p0Y = segment1[0][1];
const p1X = segment1[1][0];
const p1Y = segment1[1][1];
const p2X = segment2[0][0];
const p2Y = segment2[0][1];
const p3X = segment2[1][0];
const p3Y = segment2[1][1];
const s1X = p1X - p0X;
const s1Y = p1Y - p0Y;
const s2X = p3X - p2X;
const s2Y = p3Y - p2Y;
const s = (-s1Y * (p0X - p2X) + s1X * (p0Y - p2Y)) / (-s2X * s1Y + s1X * s2Y);
const t = (s2X * (p0Y - p2Y) - s2Y * (p0X - p2X)) / (-s2X * s1Y + s1X * s2Y);
if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {
return {
x: p0X + t * s1X,
y: p0Y + t * s1Y,
};
}
return null; // No collision
}
exports.getIntersection = getIntersection;
//# sourceMappingURL=getIntersection.js.map