計算幾何之求圓與直線的交點

2021-10-19 11:52:12 字數 1506 閱讀 6224

求圓與直線的交點的方法是:

求圓心c在直線l上的投影點pr

求出直線l上的單位向量e

根據r和pr的長度來計算出圓內線段部分的一半base

用pr±base*e即得到答案

題目:cgl_7_d

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)

};double get_distance_lp(const line &line, const point &p) //點到直線的距離

pairget_cross_points(circle c, line l)

//有兩個交點

計算幾何之圓與圓的交點

計算圓與圓的交點,需要用到餘弦定理 步驟如下 求出兩個圓的圓心距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 ...

計算幾何 圓與圓的交點座標

給出兩圓的圓心座標和半徑,求出兩圓交點的座標 如下圖 可根據餘弦定理求出角a的大小,再根據函式atan2 可求出向量c1c2的方位角t 這樣一來,我們所求的交點就是以圓心c1.c為起點,大小為c1.r 角度為 t a 和 t a 的兩個向量 include include includeusing ...

圓與直線交點

圓與直線交點題目鏈結 include 使用scanf和printf的標頭檔案 include 使用c風格字串函式的標頭檔案 include 使用演算法庫的標頭檔案,max,min,swap,sort等 include 使用cin,cout的標頭檔案 include 數學標頭檔案 include 使用...