js 判断点在三角形中

function angle(a, b) {               
                return  Math.acos((a.x * b.x + a.y * b.y + a.z * b.z) / (length(a) * length(b)));               
        }
        function makeLine(a, b) {
            return new Point(b.x - a.x, b.y - a.y, b.z - a.z);
        }
        function issame(a,b)
        {
            return a.x==b.x&&a.y==b.y&&a.z==b.z;
        }
function out_or_in_triangle(a, b, c, p) {
            
            if(issame(a,p)||issame(b,p)||issame(c,p))
            return true;
            var p1 = makeLine(p, a);
            var p2 = makeLine(p, b);
            var p3 = makeLine(p, c);
            
            var s1 = angle(p1, p2);
            var s2 = angle(p2, p3);
            var s3 = angle(p3, p1);
            
            
            return Math.abs((s1+s2+s3)-(2*Math.PI))<0.001;
        }

点P 和 A B C连接 如果APB APC BPC 夹角加起来是2PI 就是内部的 不是就在外面  如果在点上面就不管了

猜你喜欢

转载自blog.csdn.net/qq_35158695/article/details/83030983