计算几何ACM——一些代码整理
来源:互联网 发布:杰洛特的母亲 知乎 编辑:程序博客网 时间:2024/05/22 16:59
实数的gcd
double gcd(double x,double y){ while(fabs(x)>eps && fabs(y)>eps)//此处的eps根据需要取 { if(x>y) x-=floor(x/y)*y; else y-=floor(y/x)*x; } return x+y;}
求向量叉积
double cross(const Point& p1,const Point& p2,const Point& q1,const Point& q2){ return (p2.x-p1.x)*(q2.y-q1.y)-(p2.y-p1.y)*(q2.x-q1.x);}//vector cross product
极角排序的一种实现方式
bool cmp(const Point& a,const Point& b){ if(a.y==0 && b.y==0 && a.x*b.x<=0) return a.x>b.x; if(a.y==0 && a.x>=0 && b.y!=0) return true; if(b.y==0 && b.x>=0 && a.y!=0) return false; if(b.y*a.y<=0) return a.y>b.y; return cross(O,a,O,b)>0 || (cross(O,a,O,b)==0 && a.x<b.x);}
得到垂心
Point get_circumcenter(Point a,Point b,Point c){ double a1=b.x-a.x,b1=b.y-a.y,c1=(a1*a1+b1*b1)/2; double a2=c.x-a.x,b2=c.y-a.y,c2=(a2*a2+b2*b2)/2; double d=a1*b2-a2*b1; return Point(a.x+(c1*b2-c2*b1)/d,a.y+(a1*c2-a2*c1)/d);}
阅读全文
0 0
- 计算几何ACM——一些代码整理
- 计算几何的一些代码。。。
- 计算误差——ACM计算几何中的精度问题
- ACM-计算几何之The area——hdu1071
- ACM-计算几何之Toys——poj2318
- ACM-计算几何之Toy Storage——poj2398
- ACM-计算几何之Pick-up sticks——poj2653
- ACM-计算几何之Segments——poj3304
- ACM-计算几何之Intersecting Lines——poj1269
- ACM-计算几何之围困——hrbustoj1142
- ACM-计算几何之Toy Storage——poj2398
- ACM-计算几何之受到攻击——hrbust1291
- ACM-计算几何之Shape of HDU——hdu2108
- ACM-计算几何之Segment set——hdu1558
- ACM-计算几何之凸多边形——hrbust1429
- ACM-计算几何之Cupid's Arrow——hdu1756
- ACM-计算几何之Surround the Trees——hdu1392
- ACM-计算几何之Wall——poj1113
- Java的“跨平台”特性
- 一、项目结构
- 设计模式系列之建造者模式
- Mysql 的常用语法
- 处理流式数据中MAX N问题
- 计算几何ACM——一些代码整理
- python猜数字游戏
- 史上最简单的 MySQL 教程(二十四)「数据的高级操作 之 查询(中)」
- Hive的客户端操作
- 第九章 PX4-pixhawk-姿态估计解析
- java 流程控制
- Python任务调度模块 – APScheduler
- 由"=="所引起的“您提交的程序没有通过所有的测试用例”
- JSF复习系列(3)--JSF、Primefaces标签与Html的内嵌使用