首页 > 代码库 > 计算几何-UVa10652
计算几何-UVa10652
题意见白书,P272~273
把之前的板子拼起来就可以了
ans=(S(木板)*100/S(凸包))%
板子太长,只贴关键吧
求面积
db Area(D*R,int n){ db S=0.0; for(int i=1;i<n;i++)S+=Cross(R[i]-R[1],R[i+1]-R[1]); return S/2; }
int n,cnt=0;db S1=0.0; for(scanf("%d",&n);n--;){ db x,y,w,h,j,a; scanf("%lf%lf%lf%lf%lf",&x,&y,&w,&h,&j); D O(x,y);a=-Rad(j); R[++cnt]=O+Rotate(V(-w/2,-h/2),a); R[++cnt]=O+Rotate(V( w/2,-h/2),a); R[++cnt]=O+Rotate(V(-w/2, h/2),a); R[++cnt]=O+Rotate(V( w/2, h/2),a); S1+=w*h;
} int m=Andrew(R,cnt,A); db S2=Area(A,m); printf("%.1lf%%\n",S1*100.0/S2);
计算几何-UVa10652
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。