給出兩圓的圓心座標和半徑, 求出兩圓交點的座標
如下圖
可根據餘弦定理求出角a的大小, 再根據函式atan2()可求出向量c1c2的方位角t
這樣一來, 我們所求的交點就是以圓心c1.c為起點, 大小為c1.r ,角度為 t+a 和 t-a 的兩個向量
#include#include#includeusing namespace std;
typedef struct node
node;
inline node vector(node a, node b);
inline double dis2(node a, node b);
double anglea(node o1, double r1, node o2, double r2);
double anglet(node o1, node o2);
node polar(double a, double r);
int main()
double t = anglet(o1, o2);
double a = anglea(o1, r1, o2, r2);
node polar1 = polar(t+a,r1);
node polar2 = polar(t-a, r1);
node x1 = ;
node x2 = ;
cout << x1.x << ' ' << x1.y << ' '參考書籍: 挑戰程式設計競賽2
計算幾何之圓與圓的交點
計算圓與圓的交點,需要用到餘弦定理 步驟如下 求出兩個圓的圓心距d 求出向量c2.c c1.c與c1.c到某交點的向量夾角a 求出向量c2.c c1.c與x軸的夾角t 那麼,兩個交點就分別是以c1.c為起點,大小為c1.r,角度為t a t a的兩個向量 題目 cgl 7 e ac include ...
計算幾何 圓的交點 Navigation
傳送門 問題描述 全球定位系統 gps 是乙個導航系統,根據一些在距地表大約20,000千公尺的軌道執行的衛星。每個衛星在乙個已知的軌道上執行,發射編碼著當前時間的無線電訊號。如果乙個裝有全球定位系統的交通工具有乙個非常精確的時鐘,它就可以比較它自己的當地時間和從衛星上接受到的編碼成訊號的時間。因為...
計算幾何之求圓與直線的交點
求圓與直線的交點的方法是 求圓心c在直線l上的投影點pr 求出直線l上的單位向量e 根據r和pr的長度來計算出圓內線段部分的一半base 用pr base e即得到答案 題目 cgl 7 d ac include include include using namespace std define ...