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 ...