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

2021-06-19 05:55:05 字數 903 閱讀 1660

注意:線段完全在矩形內也是相交,注意輸入。

解法:分別判斷線段是否跟矩形的四條邊相交,再判斷線段的兩個端點是否都在矩形內

#include#include#include#include#include#include#include #includeusing namespace std;

#define inf 2147483646

#define pi 3.1415926535898

#define n 33

#define ll __int64

struct point

;double xmulti(point p0,point p1,point p2)

bool isjiao(point s1,point e1,point s2,point e2)//線段與邊相交

point a,b,c,d,e,f;

int main()

if(xe>=x&&xe<=xx&&ye>=y&&ye<=yy)

a.x =x;a.y=yy;

b.x=x;b.y=y;

c.x=xx;c.y=y;

d.x=xx;d.y=yy;

e.x=xs;e.y=ys;

f.x=xe;f.y=ye;

if(isjiao(a,b,e,f))

ans=1;

if(isjiao(a,d,e,f))

ans=1;

if(isjiao(b,c,e,f))

ans=1;

if(isjiao(c,d,e,f))

ans=1;

if(ans)

printf("t\n");

else

printf("f\n");

}return 0;

}

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

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

C 判斷線段是否相交

c 判斷線段是否相交 線段是否相交,一種是從幾何上就是判斷兩個線段有沒有交點,還有一種是通過向量叉乘 也就是向量積 來判斷。因為向量叉乘的結果是乙個垂直於原來兩個向量的新向量,可以簡單的理解為垂直於原來兩向量所在平面的向量。我們來看圖。線段是否相交 線段p1p2的p1點 線段p1p2的p2點 線段q...

C 判斷線段是否相交

線段是否相交,一種是從幾何上就是判斷兩個線段有沒有交點,還有一種是通過向量叉乘 也就是向量積 來判斷。因為向量叉乘的結果是乙個垂直於原來兩個向量的新向量,可以簡單的理解為垂直於原來兩向量所在平面的向量。我們來看圖 線段是否相交 線段p1p2的p1點 線段p1p2的p2點 線段q1q2的q1點 線段q...