我一直在試圖弄清楚如何檢查一個點是否位於同一條直線上以及兩個其他點之間。它似乎工作,如果線是對角線,但如果它的垂直或水平直線失敗。確定一個點是否在一條線上的兩個其他點之間
這是我的方法:適用於所有情況
public bool isBetween(Vector3 C, Vector3 A, Vector3 B)
{
Vector3 sum = Vector3.Cross(A,B) + Vector3.Cross(A,C) + Vector3.Cross(B,C);
if (sum.x == 0 && sum.z == 0 && sum.y == 0)
{
Vector3 min = Vector3.Min(A, B);
Vector3 max = Vector3.Max(A, B);
// only checking 2 dimensions
if (C.x > min.x && C.x < max.x && C.z > min.z && C.z < max.z)
{
return true;
}
}
return false;
}
它適用於某些情況下,但不是100%。不知道如何解決它,讓它工作。
它適用於哪些情況?什麼情況下不起作用? – gdc