acm-计算几何模板.docx

acm-计算几何模板.docx

ID:59831253

大小:31.39 KB

页数:13页

时间:2020-11-24

acm-计算几何模板.docx_第1页
acm-计算几何模板.docx_第2页
acm-计算几何模板.docx_第3页
acm-计算几何模板.docx_第4页
acm-计算几何模板.docx_第5页
资源描述:

《acm-计算几何模板.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#includeusingnamespacestd;constdoubleeps=1e-8;constdoubleINF=1e20;constdoublepi=acos(-1.0);intdcmp(doublex){if(fabs(x)

2、dinput(){scanf("%lf%lf",&x,&y);}voidoutput(){printf("%.2f%.2f",x,y);}booloperator==(constPoint&b)const{return(dcmp(x-b.x)==0&&dcmp(y-b.y)==0);}booloperator<(constPoint&b)const{return(dcmp(x-b.x)==0?dcmp(y-b.y)<0:x

3、ointoperator-(constPoint&b)const{returnPoint(x-b.x,y-b.y);}Pointoperator*(doublea){returnPoint(x*a,y*a);}Pointoperator/(doublea){returnPoint(x/a,y/a);}doublelen2(){//返回长度的平方returnsqr(x)+sqr(y);}doublelen(){//返回长度returnsqrt(len2());}Pointchange_len(doubler){//转化为长度为r的向量doublel=len();

4、if(dcmp(l)==0)return*this;//零向量返回自身r/=l;returnPoint(x*r,y*r);}Pointrotate_left(){//顺时针旋转90度returnPoint(-y,x);}Pointrotate_right(){//逆时针旋转90度returnPoint(y,-x);}Pointrotate(Pointp,doubleang){//绕点p逆时针旋转angPointv=(*this)-p;doublec=cos(ang),s=sin(ang);returnPoint(p.x+v.x*c-v.y*s,p.y+v.x*

5、s+v.y*c);}Pointnormal(){//单位法向量doublel=len();returnPoint(-y/l,x/l);}};doublecross(Pointa,Pointb){//叉积returna.x*b.y-a.y*b.x;}doubledot(Pointa,Pointb){//点积returna.x*b.x+a.y*b.y;}doubledis(Pointa,Pointb){//两个点的距离Pointp=b-a;returnp.len();}doublerad_degree(doublerad){//弧度转化为角度returnrad/p

6、i*180;}doublerad(Pointa,Pointb){//两个向量的夹角returnfabs(atan2(fabs(cross(a,b)),dot(a,b)));}boolparallel(Pointa,Pointb){//向量平行doublep=rad(a,b);returndcmp(p)==0

7、

8、dcmp(p-pi)==0;}//************直线线段structLine{Points,e;//直线的两个点Line(){}Line(Point_s,Point_e):s(_s),e(_e){}//一个点和倾斜角确定直线Line(Point

9、p,doubleang){s=p;if(dcmp(ang-pi/2)==0){e=s+Point(0,1);}elsee=s+Point(1,tan(ang));}//ax+by+c=0确定直线Line(doublea,doubleb,doublec){if(dcmp(a)==0){s=Point(0,-c/b);e=Point(1,-c/b);}elseif(dcmp(b)==0){s=Point(-c/a,0);e=Point(-c/a,1);}else{s=Point(0,-c/b);e=Point(1,(-c-a)/b);}}voidinput(){s

10、.input();e.input();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。