做网站的公司怎么转型,网站维护与建设合同书,博客做网站,重庆建设工程招标造价信息网站我们做两次
每次把一条线段视为直线#xff0c;判断另一条线段的两个点是否在直线的两侧
如果两次都符合#xff0c;说明直线相交
struct Point {double x, y; Point operator - (const Point A) const {Point B; B.xx-A.x; B.yy-A.y; return B; }double operator ^ …我们做两次
每次把一条线段视为直线判断另一条线段的两个点是否在直线的两侧
如果两次都符合说明直线相交
struct Point {double x, y; Point operator - (const Point A) const {Point B; B.xx-A.x; B.yy-A.y; return B; }double operator ^ (const Point A) const {return x * A.y - y * A.x; }
};
namespace Cross {bool Line_cross(Point p1, Point p2, Point p3, Point p4) {double a1 (p1 - p2) ^ (p3 - p2); double a2 (p1 - p2) ^ (p4 - p2); if(a1 * a2 0) return false; return true; }bool cross(Point p1, Point p2, Point p3, Point p4) {bool t1 Line_cross(p1, p2, p3, p4); bool t2 Line_cross(p3, p4, p1, p2); return t1 t2; }
}