叉積判斷線段 直線相交 POJ3304

2021-10-07 22:56:03 字數 664 閱讀 2890

給你n個線段的兩端座標 問是否存在一條直線 所有線段在這條直線上的投影有共同點

存在一條直線 所有線段在這條直線上的投影有共同點 == 有一條線能穿過所有線段(這兩條直線剛好⊥)

暴力列舉所有端點    直線與線段相交——叉積(判斷一次就夠啦~ / 線段與線段相交 twice)

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

const double eps = 1e-8;

int t,n;

double x[205],y[205];

double kuali(double x11,double y11,double x22,double y22,double kx,double ky)

int main()

bool flag = 0;

for(int i = 1;i <= n * 2; i++)

bool vis = 0;

for(int k = 1;k <= n; k++)

}if(!vis)

}if(flag) break;

} if(flag) printf("yes!\n");

else printf("no!\n");

}}

poj3304(叉積判斷直線和線段相交)

題意 求是否能找到一條直線,使得n條線段在該直線的投影有公共點。思路 如果存在這樣的直線,那麼在公共投影點作直線的垂線,顯然該垂線會經過所有直線,那麼原題轉換為求是否有經過所有線段的直線。如果存在這樣的直線,那麼該直線一定能通過平移和旋轉之後經過所有線段中的兩個端點,那麼我們列舉所有兩兩線段的端點作...

叉積 線段相交判斷 凸包

一 叉積 叉積的計算是線段方法的核心。對於向量p1和p2,叉積是由點 0,0 p1 p2和p1 p2構成的平行四邊形的有向面積。另一種與之等價但更有效的的叉積定義方式是將其看做矩陣行列式 p1 p2 x1y2 x2y1 p2 p1 若p1 p2為正,則相對於原點 0,0 來說,p1位於p2順時針方向...

poj 3304 判斷直線與線段相交

傳送門 題意 給你一些線段,然後問你是否存在一條直線,把這些線段投影到直線上,所投影與原線段至少有1個公共點。思路 由題意可得原線段與直線符合條件的直線至少有1個公共點,所以就轉化成是否有直線與所有線段相交的問題了。列舉任意兩個不同端點作為直線上兩點確定一直線判斷是否與所有直線相交即可。吐槽 距離小...