计算几何小模板
来源:互联网 发布:衬衣品牌 知乎 编辑:程序博客网 时间:2024/05/16 23:39
RT
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>#include<map>using namespace std;#define Vector Pointint t;struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){} } ;void Wa(){ cout<<"Wrong!!!"<<endl; system("pause"); }double dcmp(double x){ if(abs(x)<eps)return 0; return x; }int Getsign(double x){ if(!dcmp(x))return 0; if(x<0)return -1; return 1; }bool operator <(Point u, Point v){ return u.x<v.x||(v.x==u.x&&u.y<v.y); }bool operator ==(Point u, Point v){ return u.x==v.x&&u.y==v.y; }bool operator >(Point u, Point v){ return !(u==v||u<v); }Vector operator -(Point u, Point v){ return Point(u.x-v.x,u.y-v.y); }Vector operator +(Vector u, Vector v){ return Vector(u.x+v.x,u.y+v.y); }double operator *(Vector u, Vector v){ return u.x*v.x+u.y*v.y; }Vector operator *(Vector u, double k){ return Vector(u.x*k, u.y*k); }Vector operator /(Vector u, double k){ if(!k)Wa(); return Vector(u.x/k, u.y/k); }double Cross(Vector u, Vector v){ return u.x*v.y-u.y*v.x; }double AreaTri(Vector u, Vector v){ return Cross(u,v); }Vector Rotate(Vector u, double rad){ return Vector(u.x*cos(rad)-u.y*sin(rad), u.x*sin(rad)+u.y*cos(rad)); }double Length(Vector u){ return sprt(u.x*u.x+u.y*u.y); }double Angle(Vector u, Vector v){ if(!(Length(u)&&Length(v)))Wa(); return acos(u*v/Length(u)/Length(v)); }Point GetInt(Point a, Vector b, Point c, Vector d){ Vector tem=a-c; double t=Cross(d,tem)/Cross(b,d); return a+b*t; }bool Onseg(Point a,Point b,Point c){ return dcmp((a-c)*(b-c))==0&&dcmp(Cross(a-c,b-c))<0; }bool IntLine(Point a, Point b, Point c, Point d){double c1=Cross(b-a,c-a),c2=Cross(b-a,d-a);double c3=Cross(c-d,a-d),c4=Cross(c-d,b-d);return Getsign(c1)*Getsign(c2)<0 &&Getsign(c3)*Getsign(c4)<0;}
0 0
- 计算几何小模板
- [模板]计算几何模板
- 【计算几何各种小模板总结贴】[不定期更新]
- 经典计算几何模板
- 计算几何模板2
- 计算几何 模板
- 计算几何模板
- 计算几何经典模板
- 计算几何模板
- ACM计算几何模板
- 计算几何模板
- 计算几何模板
- 计算几何模板
- 计算几何 模板
- 计算几何初步模板
- 计算几何三维模板
- 二维计算几何模板
- 计算几何模板
- 第十二周 阅读项目 (5)
- HDU ACM 2234 无题I->IDA*算法
- C/C++库文件的生成与使用
- hdu 5248 序列变换【二分】
- ScrollView嵌套ListView只显示一行(总结)
- 计算几何小模板
- 生活还是很美好的
- CSU 1648
- java下载网络文件并重命名
- 编程实现队列的入队、出队、测长、打印
- VelocityTracker类介绍
- mulitset,mulitmap
- mysql语句优化原则
- linux自学笔记