hdu 5572an easy physics problem
題意:
光滑平面,乙個剛性小球,乙個固定的剛性圓柱體
給定圓柱體圓心座標,半徑
小球起點座標,起始運動方向(向量)
終點座標
問能否到達終點,小球運動中如果碰到圓柱體會反射(基本物理知識)
思路:
根據高中平面幾何知識很快找到判斷方法,但是向量的**實現有一些麻煩,浪費時間,使用向量模板會方便許多
#include
#include
struct node;
double node::dis(node a)
node node::add(node a);
}double node::mul(node a)
node node::mul(double a);
}node node::neg();
}double node::abs()
node node::unt();
}double node::agl(node a)
bool node::eql(node a)
int node::pal(node a)
double r;
node a,b,c,o;
node ab,ac,ao;
double root(double a,double b,double c)
void getc()
int judge(node a,node b,node c)
int stop()
return0;}
int conet()
int work();
ao=;
if(stop())return
0; if(conet())return
1; getc();//得到c的座標
node cb=;
node oc=;
if(judge(ac.neg().unt(),cb.unt(),oc.unt()))return
1; return0;}
int main()
return
0;}
平面幾何基礎
乙個很有資訊量的部落格 向量p1 x1,y1 p2 x2,y2 內積p1 p2 x1x2 y1y2,外積p1 p2 x1y2 x2y1 先利用外積根據是否有 p1 q p2 q 0來判斷點q是否在直線p1 p2上 再利用內積根據是否有 p1 q p2 q 0來判斷點q是否落在p1 p2之間 要求兩直...
平面幾何常用模板
平面幾何常用模板 定義點的類 struct point 定義向量的類 typedef point vector 定義向量的基本運算 vector operator vector a,vector b vector operator vector a,vector b vector operator ...
HDU 5531 平面幾何 三分
題意是給你n個點,然後要求以每個點為圓心畫乙個圓,使得兩兩相鄰的圓心的圓相切,不相鄰的圓可以相交,如果可以作這樣的圓那麼輸出圓面積和的最小值和,每個圓的半徑,否則輸出impossible。首先我們求出每一條鄰邊的長度,記為l1,l2,l3,ln,假定第乙個圓的半徑為x,那麼我們可以用x表示所有圓的半...