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 的 線性組合 來構造.在二維歐幾里得空間 中,凸包可想象為一條剛好包著所有點的橡皮圈。用不嚴謹的話來講,給...