1
A:(-538.10,-41.64)
B:(-544.67,-57.29)
C:(-553.75,-35.07)
點檢查:
P1:(-548.20, -45.77)
P2:(-553.00,-30.60)
我已經知道P1是內部和P2在外面,但我試圖找出一個公式通過提供解決這個△ABC座標和一個點並返回true/false。
通過圍繞一個可愛,我發現這個(不LUA)挖:
function ptInTriangle(p, p0, p1, p2) {
var A = 1/2 * (-p1.y * p2.x + p0.y * (-p1.x + p2.x) + p0.x * (p1.y - p2.y) + p1.x * p2.y);
var sign = A < 0 ? -1 : 1;
var s = (p0.y * p2.x - p0.x * p2.y + (p2.y - p0.y) * p.x + (p0.x - p2.x) * p.y) * sign;
var t = (p0.x * p1.y - p0.y * p1.x + (p0.y - p1.y) * p.x + (p1.x - p0.x) * p.y) * sign;
return s > 0 && t > 0 && (s + t) < 2 * A * sign;
}
但是,我不能環繞這意味着什麼都我的頭......
我認爲這個老問題可以幫助:[如何確定一個點是否在一個二維三角?](https://stackoverflow.com/questions/2049582/how-to-determine-if-a-point-是-IN-A-2D-三角形) –