圓與線段的交點

2021-06-27 20:42:35 字數 855 閱讀 4849

poj 3819 

給出一條線段的兩個端點,再給出n個圓,求出這條線段被所有圓覆蓋的部分佔了整條線段的百分比。

圓與線段的交點 :

向量ab 的引數方程  p = a + t * (b - a)      0<=t<=1 ;

將點帶入圓的方程即可。 

注意:有交點 0 <= t <= 1 ;

此題求覆蓋的部分。 則 若求得 t  滿足 ;

double  ask(double t)

const  double  eps = 1e-8 ;

int dcmp(double x)

struct point

};double ask(double x)

vector> g ;

void circle_cross_line(point a , point b , point o , double r)

}point o , a , b ; double r ;

int main()

if(g.size() == 0)

sort(g.begin() , g.end()) ;

double l = g[0].first , r = g[0].second , ans = 0.0 ;

for(i = 1 ; i < g.size() ; i++)

else r = max(r , g[i].second) ;

}ans += r - l ;

printf("%.2lf\n" , ans * 100.0) ;

}return 0 ;

}

圓與直線交點

圓與直線交點題目鏈結 include 使用scanf和printf的標頭檔案 include 使用c風格字串函式的標頭檔案 include 使用演算法庫的標頭檔案,max,min,swap,sort等 include 使用cin,cout的標頭檔案 include 數學標頭檔案 include 使用...

計算幾何 圓與圓的交點座標

給出兩圓的圓心座標和半徑,求出兩圓交點的座標 如下圖 可根據餘弦定理求出角a的大小,再根據函式atan2 可求出向量c1c2的方位角t 這樣一來,我們所求的交點就是以圓心c1.c為起點,大小為c1.r 角度為 t a 和 t a 的兩個向量 include include includeusing ...

計算幾何之圓與圓的交點

計算圓與圓的交點,需要用到餘弦定理 步驟如下 求出兩個圓的圓心距d 求出向量c2.c c1.c與c1.c到某交點的向量夾角a 求出向量c2.c c1.c與x軸的夾角t 那麼,兩個交點就分別是以c1.c為起點,大小為c1.r,角度為t a t a的兩個向量 題目 cgl 7 e ac include ...