圓與三角形(圓與三角形是否相交)

2021-07-11 20:31:33 字數 1198 閱讀 4989

給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出"yes",否則輸出"no"。(三角形的面積大於0)。

第1行:乙個數t,表示輸入的測試數量(1 <= t <= 10000),之後每4行用來描述一組測試資料。

4-1:三個數,前兩個數為圓心的座標xc, yc,第3個數為圓的半徑r。(-3000 <= xc, yc <= 3000, 1 <= r <= 3000)

4-2:2個數,三角形第1個點的座標。

4-3:2個數,三角形第2個點的座標。

4-4:2個數,三角形第3個點的座標。(-3000 <= xi, yi <= 3000)

output

共t行,對於每組輸入資料,相交輸出"yes",否則輸出"no"。

input示例

20 0 10

10 0

15 0

15 5

0 0 10

0 05 0

5 5output示例

yesno

#include#include#include#includeusing namespace std;

#define eps 1e-8

struct point

;double dis(point p1,point p2)///兩點距離

double cross(point p1,point p2,point p3)///叉乘

double distoline(point p,point l1,point l2)///點到直線的距離

int isintersect(point c,double r,point l1,point l2)

{ double t1=dis(c,l1)-r, t2=dis(c,l2)-r;

point t=c;

if(t1-eps || t2>-eps;

t.x+=l1.y-l2.y;

t.y+=l2.x-l1.x;

return cross(l1,c,t)*cross(l2,c,t)

圓與三角形

1298 圓與三角形 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後每4行用來描述一組測試...

判斷三角形與圓是否相交

include include includeusing namespace std struct p struct circle int cmp double x 誤差處理 bool judge double a,double b,double c,double x1,double x2 一元二次...

1298 圓與三角形

1298 圓與三角形 hackerrank 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後...