
计算几何
文章平均质量分 55
acm2016
这个作者很懒,什么都没留下…
展开
-
凸包-极角序-水平序
凸包-极角序-水平序// Graham算法, 极角序,复杂度O(nLog(n))Point List[maxn];int aStack[maxn],top;bool cmp(Point p1,Point p2) {//极角序的排序规则 double temp = Xmult(List[0],p1,p2); if(temp > 0) return原创 2016-09-04 12:47:14 · 451 阅读 · 0 评论 -
叉积
叉积//求叉积(线段交,判断点的位置)struct Point { double x; double y; Point() {} Point(double xx,double yy) { x = xx,y = yy; } Point operator-(const Point &b)const {原创 2016-09-04 12:50:04 · 257 阅读 · 0 评论 -
求重心
求重心1.精确求重心(点的顺序可顺时针可逆时针,但必须有序)double Area(Point p0,Point p1,Point p2) { double area = p0.x * p1.y + p1.x * p2.y + p2.x * p0.y; area = area - p1.x * p0.y - p2.x * p1.y - p0.x * p2.y;原创 2016-09-04 12:52:49 · 1243 阅读 · 0 评论 -
多边形面积
多边形面积//任意多边形面积(凸or凹)//也可以不存,一边输入一边求面积,前提是有序的double Area(Point op[],int n) { double area = 0; for(int i = 0; i < n - 1; i ++) { area = area + op[i].x * op[i + 1].y;原创 2016-09-04 12:56:02 · 357 阅读 · 0 评论 -
点到线段的最大最小距离
点到线段的最大最小距离//点到线段的最大最小距离//注意判断垂足是否在线段上double Distance(Point a,Point b,Point c) { if(a.x == b.x) { if(c.y >= min(a.y,b.y) && c.y <= max(a.y,b.y)) return fabs(a.x -原创 2016-09-04 13:00:17 · 1433 阅读 · 0 评论