
计算几何
文章平均质量分 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 · 466 阅读 · 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 · 266 阅读 · 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 · 1269 阅读 · 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 · 379 阅读 · 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 · 1476 阅读 · 0 评论