POJ1410 線段矩形相交 坑多

2021-08-22 15:21:17 字數 620 閱讀 5342

判斷矩形和線段是否相交,線段在矩形內也算

前幾題一直以為判斷線段相交只需要跨步實驗就行了,這題是個例外,因為這題相交可以是端點相交所以叉乘那裡條件是 >= eps(注意這裡的等號)

這就導致如果有兩條線段是在同一直線上的但是沒有重合部分,那麼通過跨立實驗返回的是相交,就錯了,必須再加上快速排斥

#include #include #include #include using namespace std;

const double eps = 1e-8;

double a, b, c, d, e, f, g, h;

struct line

line (double _x1, double _y1, double _x2, double _y2)

}line[5];

double cross(double x1, double y1, double x2, double y2)

bool judge(double x1, double y1, double x2, double y2)

return false;

}int main()

return 0;

}

poj1410 判斷線段和矩形是否相交

題意 判斷線段和矩形是否相交。思路 注意這裡的相交包括線段在矩形內,因此先判斷線段與矩形的邊是否相交,再判斷線段的兩端點是否在矩形內 因為是矩形,即凸多邊形,直接用叉積判斷即可,如果是一般的多邊形,需要用射線法判斷。ac code include include include include us...

線段 矩形 矩形與矩形 相交

csharp view plain copy print?功能 判斷線段和矩形是否相交 先判斷線段的倆個端點是否在矩形的內部,在就必然相交 其次判斷線段的包圍盒是否和矩形相交,不相交的話線段和矩形肯定也不相交 最後判斷,矩形的四個頂點是否位於線段的兩側,是則必然相交,否則就不相交 csharp vi...

PKU1410 判斷線段是否跟矩形相交

注意 線段完全在矩形內也是相交,注意輸入。解法 分別判斷線段是否跟矩形的四條邊相交,再判斷線段的兩個端點是否都在矩形內 include include include include include include include includeusing namespace std define ...