Unity 判断一个点是否在三角形内

Unity 判断一个点是否在三角形内


p点如果在三角形内则它在每条边的左侧

		public static bool IsPointInTriangle(this Vector3 p, Vector3 a, Vector3 b, Vector3 c)
        {
    
    
            Vector3 ap = p-a;
            Vector3 ab = b - a;
            Vector3 bp = p-b;
            Vector3 bc = c - b;
            Vector3 cp = p-c;
            Vector3 ca = a - c;

            var npab = Vector3.Cross(ap,ab).y;
            var npbc = Vector3.Cross(bp,bc).y;
            var npca = Vector3.Cross(cp,ca).y;

            return (npab * npbc) > 0 && (npab * npca) > 0;
        }

猜你喜欢

转载自blog.csdn.net/qq_26318597/article/details/128559843