UVA10969計算幾何 交叉圓形成的圓弧長

2022-09-15 22:39:21 字數 2104 閱讀 4599

1

/*uva 10969計算幾何

2這道題和la2572相似,但相對簡單些。

3思路:求圓間的交點,順序列舉出圓上的圓弧,中點判斷是否被覆蓋。4*/

5 #include 6 #include 7 #include

8 #include 9 #include 10 #include

11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include

19 #include 20

#define inf 0x3f3f3f3f

21#define eps 1e-7

22#define eps2 1e-3

23using

namespace

std;

2425

struct

point

2629 point(double xx,double

yy)30

34};

35struct

circle

3640 circle(point o1,double

r1)41

45 point point(double

a)46

49};

50typedef point vector;

5152

bool

operator==(point a,point b)

5357 vector operator-(point a,point b)//

表示a指向b

5861 vector operator*(vector a,double

k)62

65 vector operator+(point a,point b)//

表示a指向b

6669

double

dot(vector a,vector b)

7073

double

length(vector a)

7477

double

cross(vector a,vector b)

7881

int dcmp(double

x)82

87double

angle(vector v)

8891

double normal(double

rad)

9295

96 point getmid(double a,double b,double r,double x,double y)//

圓上兩點,獲得中點的座標

97104

bool pincircle(point p,circle c)//

判斷點在圓內

105110

void getcircleinter(point c1,double r1,point c2,double r2,vector&rad)

111121

122int

n;123 circle cc[110];//

圓124 vector arf[110];//

圓心角125

126int

cas;

127int

main()

128140

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

141142

for(int i=1; i<=n; i++)//

獲得圓上的交點的角度

143for(int j=1; j<=n; j++)

144getcircleinter(cc[i].o,cc[i].r,cc[j].o,cc[j].r,arf[i]);

145146

for(int i=1; i<=n; i++) //

列舉n個圓上的圓弧

147161

}162

163 printf("

%.3lf\n

",(ans));//

放縮回來

164}

165return0;

166 }

uva 11178 計算幾何

函式較多,作為模板。include include include using namespace std struct point 定義點的時候直接利用建構函式,很方便 typedef point vector 這裡因為向量都有兩個維度的有序參量 vector operator vector a,...

UVA 11178 計算幾何

題目大意 求乙個三角形中每個內角的角三等分線組成的三角形的三個點的座標 題目解析 沒有演算法可言,直接上模板 ac includeusing namespace std struct point typedef point vector vector operator vector a,vector...

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

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