計算圓與圓的交點,需要用到餘弦定理
步驟如下:
求出兩個圓的圓心距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 #include #include using namespace std;
#define counter_clockwise -1 //逆時針
#define clockwise 1 //順時針
#define online_back -2 //p2 p0 p1依次排列在一條直線上
#define online_front 2 //p0 p1 p2依次排列在一條直線上
#define eps 1e-8
class point
point(double x, double y)
double operator^(const point &p) const //叉乘
double operator*(const point &p) const //點乘
point operator*(const double &d) const
point operator/(const double &d) const
point operator-(const point &p) const
point operator+(const point &p) const
double sqr()
double abs()
double distance(const point &p)
void print()
};class line
line(point p1, point p2)
};class circle
circle(point o, double r)
circle(double cx, double cy, double r)
};point polar(double length, double angle) //根據模長、角度求向量
pairget_cross_points(circle c1, circle c2) //求圓與圓的交點
計算幾何 圓與圓的交點座標
給出兩圓的圓心座標和半徑,求出兩圓交點的座標 如下圖 可根據餘弦定理求出角a的大小,再根據函式atan2 可求出向量c1c2的方位角t 這樣一來,我們所求的交點就是以圓心c1.c為起點,大小為c1.r 角度為 t a 和 t a 的兩個向量 include include includeusing ...
計算幾何 圓的交點 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 ...