#include "common_tool.h" namespace common { bool is_intersect(jxline myline1, jxline myline2) { // 快速排斥实验 if (myline1.get_max_x() < myline2.get_min_x() || myline2.get_max_x() < myline1.get_min_x() || myline1.get_max_y() < myline2.get_min_y() || myline2.get_max_y() < myline1.get_min_y()) return false; // 跨立实验(叉积异号) if (((((float)myline1.xa - (float)myline2.xa)*((float)myline2.yb - (float)myline2.ya) - ((float)myline1.ya - (float)myline2.ya)*((float)myline2.xb - (float)myline2.xa))* (((float)myline1.xb - (float)myline2.xa)*((float)myline2.yb - (float)myline2.ya) - ((float)myline1.yb - (float)myline2.ya)*((float)myline2.xb - (float)myline2.xa))) > 0 || ((((float)myline2.xa - (float)myline1.xa)*((float)myline1.yb - (float)myline1.ya) - ((float)myline2.ya - (float)myline1.ya)*((float)myline1.xb - (float)myline1.xa))* (((float)myline2.xb - (float)myline1.xa)*((float)myline1.yb - (float)myline1.ya) - ((float)myline2.yb - (float)myline1.ya)*((float)myline1.xb - (float)myline1.xa))) > 0) return false; return true; } }