UVA10002求凸包的質心

2022-09-15 22:36:18 字數 1557 閱讀 4075

1

/*uva10002

2求凸包的質心,而且這道題並沒有說明是否按照順序排序,還是最好求一下凸包

3注意結構體的建構函式賦初值的問題

4ps:整理模板5*/

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 #include 21

#define eps 1e-10

22#define maxn 100+10

2324

using

namespace

std;

2526

struct

point

2730 point(double xx,double yy)

31bool

operator

< (const point& p)const

34} p1[maxn],p2[maxn];

3536

37typedef point vector;

38 vector operator -(vector a, vector b)39;

41}42double

cross(vector a, vector b)

4346

int convexhull(point *p, int n, point* ch) //

求凸包47

55int k =m;

56for(int i = n-2; i >= 0; i--)

5761

if(n > 1) m--;

62return

m;63

}64 point barycenter(point p, int

n)73

double area2 = cross(p[n-1], p[0

]);74 ret.x += (p[n-1].x + p[0].x) / 3 *area2;

75 ret.y += (p[n-1].y + p[0].y) / 3 *area2;

76 area +=area2;

77 ret.x /=area;

78 ret.y /=area;

79return

ret;80}

81int

n1,n2;

82int

main()

8394 n2=convexhull(p1,n1,p2);

95 point ans=barycenter(p2,n2);

96double x=ans.x,y=ans.y;

97 printf("

%.3lf %.3lf\n

",x,y);98}

99return0;

100 }

求凸包或者閉包的順序

已知乙個多邊形n有點a,b,c,d,e,f,g,h組成,切多邊形的凹凸性不確定,如何判斷多邊形的方向呢。如果多邊形為凸多邊形,則判斷方法很簡單,只需要取出順序的三個點,如 a,b,c 三點,計算向量ab,bc的叉乘,得到的結果如果大於0,則表示c點在ab的左側,多邊形的頂點是順時針序,這樣也能判斷該...

二維凸包(模板) hdu 1348 求凸包的周長

凸包模板 const int n 1010 const double pi 3.1415927 double eps 1e 10 考慮誤差的加法運算 double add double a,double b struct point point double x,double y x x y y 建...

求任意個點的凸包問題

凸包 convex hull 是乙個計算幾何 圖形學 中的概念。在乙個實數 向量空間 v中,對於給定集合x,所有包含x的 凸集 的 交集 s被稱為x的凸包。x的凸包可以用x內所有點 x1,xn 的 線性組合 來構造.在二維歐幾里得空間 中,凸包可想象為一條剛好包著所有點的橡皮圈。用不嚴謹的話來講,給...