程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> poj 1375 Intervals(解析幾何 過圓外一點求與圓的切線)

poj 1375 Intervals(解析幾何 過圓外一點求與圓的切線)

編輯:關於C++

題目大意:給出一個光源,給出一些圓,求投影區間。

\

如圖,先可以求出角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.lR)
            {
                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;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved