判断点在三角形内外

点在平面内与三角形三个顶点中任意两点构成三个三角形,可以通过计算这三个三角形的面积和与原三角形面积比较来判断是否在三角形内

设有三角形ABC,判断点Q是否在三角形内(包含在某条边上),则当:

S(PAB)+S(PBC)+S(PAC)=S(ABC)

三角形计算公式:S=1/2*|cross(a,b)|

struct triangle{
    point a;
    point b;
    point c;
};

bool intriangle(triangle t,point p)
{
    v ab,ac,pa,pb,pc;
    ab=b-a;
    ac=c-a;
    pa=a-p;
    pb=b-p;
    pc=c-p;
    double sabc=fabs(cross(ab,ac));
    double spab=fabs(cross(pa,pb));
    double spac=fabs(cross(pc,pa));
    double spbc=fabs(cross(pb,pc));
    if(sabc==spab+spac+spbc){
        return true;
    }else{
        return false;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值