zoukankan      html  css  js  c++  java
  • 混合积判断线段相交

    #define LINEINTERSECT_CROSS(ps,pe,p) ((pe->x-ps->x)*(p->y-ps->y)-(p->x-ps->x)*(pe->y-ps->y))
    
    typedef struct XPOINT32Ftag
    {
        double x;
        double y;
    
        XPOINT32Ftag(double _x, double _y)
        {
            x = _x;
            y = _y;
        }
    
    }POINT32F;
    
    //返回true 为相交,false为不相交
    bool cxLineIntersect32F(POINT32F *p1, POINT32F *p2, POINT32F *p3, POINT32F *p4)
    {
        return MAX(p1->x, p2->x) >= MIN(p3->x, p4->x) &&
            MAX(p3->x, p4->x) >= MIN(p1->x, p2->x) &&
            MAX(p1->y, p2->y) >= MIN(p3->y, p4->y) &&
            MAX(p3->y, p4->y) >= MIN(p1->y, p2->y) &&
            LINEINTERSECT_CROSS(p1, p2, p3)*LINEINTERSECT_CROSS(p1, p2, p4) < 0 &&
            LINEINTERSECT_CROSS(p3, p4, p1)*LINEINTERSECT_CROSS(p3, p4, p2) < 0;
    }
  • 相关阅读:
    LINUX
    DOCKER
    计算牛的数目
    计算a^3=b^3+c^3+d^3
    用递归计算C(m,n)
    A Mathematical Curiosity
    Who is lier?
    我的第一篇 实习报告
    R.java
    天气系统
  • 原文地址:https://www.cnblogs.com/autumoonchina/p/5755739.html
Copyright © 2011-2022 走看看