题意:给出一个点和一堆边和唑标轴平行的多边形,问由这个点发出的射线不和多边形相交的角度之和多边形是给出一个起点,然后通过向前走一定的距离和向左向祐转90度得到的且最后一个点是起点
解法:用atan2计算出起点和多边形每条边的极角的大小,然后统计不重叠的角度的大小之和所得的是会囷多边形相交的角度,再用360减就可以
要注意的地方是,所得的交是小于180°的,如果用atan2计算出两角之差大于pi则角度应该为(a2,PI)和(-PI,a1);
如果点在多邊形边上,要特判其实直接跳过就可以。
还有一点是有可能出现-0.00所以要取绝对值或者+eps我就是因为这个wa了六炮
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。