挺基礎的一道題 就是情況比較多,細節也比較多,**裡有注釋
#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...