当前位置:   article > 正文

CF 614C. Peter And Snow Blower 点到多边形的最短距离_点到多边形的最短距离acm

点到多边形的最短距离acm
题意:给出一个定点和一个n个点的多边形.
现在将这个多边形绕着定点旋转一圈.问这一圈的面积为多少?


多边形绕定点旋转 相等于多变形内所有的点绕定点旋转一圈.
设多边形上离顶点最远和最短的距离为mx,mn 那么答案显然为pi*(mx^2-mn^2)


mx为定点到多边形顶点的最远距离,mn为定点到多边形的边的最短距离
mn利用向量积来求,注意定点到边的垂足是否在边的延长线上.

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long double db;
  4. const int N=1e6+5;
  5. const db pi=acos(-1.0);
  6. db n,x,y;
  7. struct point{
  8. db x,y;
  9. point(db vx,db vy)
  10. {
  11. x=vx,y=vy;
  12. }
  13. point()
  14. {}
  15. }p[N];
  16. point operator-(const point&v1,const point&v2)
  17. {
  18. return point(v2.x-v1.x,v2.y-v1.y);
  19. }
  20. db product(point a,point b)
  21. {
  22. return a.x*b.y-a.y*b.x;
  23. }
  24. db dot(point a,point b)
  25. {
  26. return a.x*b.x+a.y*b.y;
  27. }
  28. db dis(point a,point b)
  29. {
  30. return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
  31. }
  32. int main()
  33. {
  34. ios::sync_with_stdio(false);
  35. cin.tie(0);
  36. cin>>n;
  37. for(int i=0;i<=n;i++)
  38. cin>>p[i].x>>p[i].y;
  39. db mn
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/562759
推荐阅读
相关标签
  

闽ICP备14008679号