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 就是内部的 不是就在外面  如果在点上面就不管了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值