js 判断一个点是否在一个三角形内部-摘自Stack Overflow
function sign (p1, p2, p3) { return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y); } function PointInTriangle ( pt, v1, v2, v3) { let d1, d2, d3; let has_neg, has_pos; d1 = sign(pt, v1, v2); d2 = sign(pt, v2, v3); d3 = sign(pt, v3, v1); has_neg = (d1 < 0) || (d2 < 0) || (d3 < 0); has_pos = (d1 > 0) || (d2 > 0) || (d3 > 0); return !(has_neg && has_pos); } let pt = { x:1.0, y:0 } let p1 = { x:0, y:0 } let p2 = { x:0, y:1 } let p3 = { x:1, y:0 }
console.log(PointInTriangle(pt,p1,p2,p3))