poj 1375 Intervals(解析几何 过圆外一点求与圆的切线)

2015-11-21 01:03:59 · 作者: · 浏览: 6

题目大意:给出一个光源,给出一些圆,求投影区间。

\

如图,先可以求出角a,通过半径与PQ距离,而角b也可以求出。那么就可以求出两条切线与Y轴的夹角,分别为a+b,b-a。

之后利用角度求出各投影线段的左右顶点,排序判断即可。

?

?

#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; struct Point { double x,y; }p,q; struct Node { double l,r; }line[505]; double dist(Point p1,Point p2) { return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); } bool cmp(Node n1,Node n2) { return n1.l
      
       R) { printf("%.2f %.2f\n",L,R); L=line[i].l;R=line[i].r; } else R=max(line[i].r,R); } printf("%.2f %.2f\n\n",L,R); } return 0; } 
      
     
    
   
  


?