当前位置: 首页 > news >正文

web前端网站开发实例/郑州网络营销策划

web前端网站开发实例,郑州网络营销策划,做按摩网站有生意吗,wordpress搬家换域名点此看题面 大致题意: 告诉你若干个矩形的重心坐标、长、宽和相对\(y\)轴的偏转角度,求矩形面积和与能围住这些矩形的最小凸包面积之比。 矩形面积和 这应该是比较好求的吧。 已经给了你长和宽,直接乘起来累加即可。 最小凸包面积 这道题关键…

点此看题面

大致题意: 告诉你若干个矩形的重心坐标相对\(y\)轴的偏转角度,求矩形面积和能围住这些矩形的最小凸包面积之比。

矩形面积和

这应该是比较好求的吧。

已经给了你长和宽,直接乘起来累加即可。

最小凸包面积

这道题关键还是在于求凸包面积。

首先,我们要注意将题目中给出的角度转换成弧度,还要记得取相反数,不然调死你。

这段代码可以与旋转函数放在一起:

inline Point Rotate(Vector A,double deg)
{register double rad=deg*acos(-1)/180;dcmp(rad)<0&&(rad+=2*acos(-1)),rad=-rad;//将角度转换成弧度,并取相反数return Vector(A.x*cos(rad)-A.y*sin(rad),A.x*sin(rad)+A.y*cos(rad));//返回旋转后的点的坐标
} 

则我们就可以很方便地求出每个矩形四个顶点的坐标了。

枚举四个方向,分别将对应的向量(\(±\frac{s1}2\)\(±\frac{s2}2\))进行旋转,然后加上原先点的坐标即可(\(s1,s2\)分别为长和宽)。

这段代码如下:

A=Point(x,y),
P.p[++P.n]=A+Rotate(Point(s1/2,s2/2),deg),
P.p[++P.n]=A+Rotate(Point(s1/2,-s2/2),deg),
P.p[++P.n]=A+Rotate(Point(-s1/2,s2/2),deg),
P.p[++P.n]=A+Rotate(Point(-s1/2,-s2/2),deg);

这样,我们就可以得到\(4n\)个点,然后将这些点求一个凸包,然后作出凸包面积即可。

这段过程比较板子,可以参考这篇博客:初学计算几何(四)——初识凸包。

具体实现详见代码吧。

代码

#include<bits/stdc++.h>
#define N 600
using namespace std;
int n;
namespace ComputationGeometry
{#define eps 1e-10inline int dcmp(double x) {return fabs(x)<eps?0:(x>0?1:-1);}struct Point{double x,y;Point(double nx=0,double ny=0):x(nx),y(ny){}};typedef Point Vector;inline Vector operator + (Point A,Point B) {return Vector(A.x+B.x,A.y+B.y);}inline Vector operator - (Point A,Point B) {return Vector(A.x-B.x,A.y-B.y);}inline Vector operator * (Vector A,double x) {return Vector(A.x*x,A.y*x);}inline Vector operator / (Vector A,double x) {return Vector(A.x/x,A.y/x);}inline bool operator < (Vector A,Vector B) {return fabs(A.x-B.x)>eps?A.x<B.x:A.y<B.y;}inline double Cro(Vector A,Vector B) {return A.x*B.y-A.y*B.x;}inline Point Rotate(Vector A,double deg)//旋转{register double rad=deg*acos(-1)/180;dcmp(rad)<0&&(rad+=2*acos(-1)),rad=-rad;return Vector(A.x*cos(rad)-A.y*sin(rad),A.x*sin(rad)+A.y*cos(rad));} struct Polygon{int n;Point p[(N<<2)+5];Polygon() {n=0;}};typedef Polygon ConvexHull;inline double PolygonArea(Polygon P)//求多边形(凸包)面积{register int i;register double res=0;for(i=2;i<P.n;++i) res+=Cro(P.p[i]-P.p[1],P.p[i+1]-P.p[1])/2;return res;}inline ConvexHull GetConvexHull(Polygon P)//求凸包{register int i,t;register Polygon S=P;register ConvexHull res;for(sort(S.p+1,S.p+S.n+1),i=1;i<=S.n;++i){while(res.n>1&&dcmp(Cro(res.p[res.n]-res.p[res.n-1],S.p[i]-res.p[res.n-1]))<=0) --res.n;res.p[++res.n]=S.p[i];}for(t=res.n,i=S.n-1;i;--i){while(res.n>t&&dcmp(Cro(res.p[res.n]-res.p[res.n-1],S.p[i]-res.p[res.n-1]))<=0) --res.n;res.p[++res.n]=S.p[i];}return res;}
};
using namespace ComputationGeometry;
int main()
{register int test_tot,i;register double x,y,s1,s2,deg,sum;register Point A;register Polygon P;register ConvexHull H;scanf("%d",&test_tot);while(test_tot--){for(scanf("%d",&n),P.n=sum=0,i=1;i<=n;++i) {scanf("%lf%lf%lf%lf%lf",&x,&y,&s1,&s2,&deg),A=Point(x,y),sum+=s1*s2,//同时统计矩形面积和P.p[++P.n]=A+Rotate(Point(s1/2,s2/2),deg),P.p[++P.n]=A+Rotate(Point(s1/2,-s2/2),deg),P.p[++P.n]=A+Rotate(Point(-s1/2,s2/2),deg),P.p[++P.n]=A+Rotate(Point(-s1/2,-s2/2),deg);//存储点}printf("%.1lf %%\n",100*sum/PolygonArea(GetConvexHull(P)));//计算答案}return 0;
}

转载于:https://www.cnblogs.com/chenxiaoran666/p/UVA10652.html

http://www.lbrq.cn/news/1435663.html

相关文章:

  • 南宁网站建设_seo优化服务公司/美国seo薪酬
  • 最简单的网站怎么做/百度关键词怎么设置
  • 小米盒子做网站/新站如何快速收录
  • 永嘉高端网站建设效果/近期新闻大事
  • 网站建设费财务列账/下载百度2023最新版安装
  • 番禺网站建设策划/百度推广的步骤
  • 滤芯网站怎么做/seo优化工作内容做什么
  • java手机网站怎么做的/今日军事新闻头条打仗
  • 做婚庆网站的想法/建一个外贸独立站大约多少钱
  • 网站建设和应用的情况/北京网站设计公司
  • seo 网站太小/网站流量统计分析的维度包括
  • 网站 301/辅导机构
  • 易语言 做的网站/今日新闻国家大事
  • 苏州注册公司代办费用/东莞seo网站管理
  • 科技副总/徐州seo
  • 深圳知名网站建设公司/免费网站seo诊断
  • 青海建设工程信息网站/百度推广管理系统
  • 公司做网站的费用怎么做账/域名查询ip爱站网
  • 网站备案域名更改公司/武汉网络推广广告公司
  • 个人网站建设/seo的培训班
  • 门头沟网站建设/百度一下百度知道
  • 南宁 网站建设 公司/最好的免费建站网站
  • 如何做旅游网站推广/百度做广告怎么做
  • 公司简介怎样写/网站seo案例
  • 手机摄影网站/什么是搜索引擎优化
  • 个人养老金制度将推/seo外链工具
  • 网站后台图片做链接/公司推广文案
  • 阿里云网站备案查询/如何做好市场推广
  • 村级网站建设/常见的网络直接营销有哪些
  • 公司查询网站查询系统/游戏推广公司怎么接游戏的
  • 将 pdf 转为高清 jpg
  • electron进程间通信- 从渲染进程到主进程
  • 面试实战 问题二十九 Java 值传递与引用传递的区别详解
  • 本地(macOS)和服务器时间不同步导致的 Bug排查及解决
  • AWT与Swing深度对比:架构差异、迁移实战与性能优化
  • 【密码学】9. 可证明安全