計算幾何 51nod1298圓與三角形

2021-08-22 02:31:06 字數 762 閱讀 6508

挺基礎的一道題 就是情況比較多,細節也比較多,**裡有注釋

#includeusing namespace std;

#define inf 0x3f3f3f3f

#define emin 1e-10

#define ll long long

#define pi acos(-1.0)

#define n 505

double r;

struct point

p[4];

double dis(point a,point b)

int segoncircle(point m,point n)

double dis = fabs(a*p[0].x+b*p[0].y+c)/(sqrt(a*a+b*b));//點到直線距離

if(dis > r) return 0;

//判斷圓心分別到兩個端點構成的角度是否為銳角(前提是兩個端點都在圓外 會提前判斷的)

a1 = (p[0].x-m.x )*(n.x-m.x )+(p[0].y-m.y )*(n.y -m.y );

a2 = (p[0].x-n.x )*(m.x-n.x )+(p[0].y-n.y )*(m.y -n.y );

if(a1>0&&a2>0) return 1; //都是銳角

return 0;

}int intersect()

int main()

return 0;

}

51 nod 1298 圓與三角形 (計算幾何)

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

51nod 1298 圓與三角形(幾何知識)

給出圓的圓心和半徑,以及三角形的三個頂點,問圓同三角形是否相交。相交輸出 yes 否則輸出 no 三角形的面積大於0 第1行 乙個數t,表示輸入的測試數量 1 t 10000 之後每4行用來描述一組測試資料。4 1 三個數,前兩個數為圓心的座標xc,yc,第3個數為圓的半徑r。3000 xc,yc ...

51nod 1298 圓與三角形

給出圓心 三角形三點座標,以及圓的半徑,判斷圓與三角形是否相交。我是由兩點的座標求直線方程,然後和圓聯立方程組,看是否有交點,如果有,並且交點應當在給出的兩點之間,則相交。也許還有更好的方法。include include includeusing namespace std struct p st...