HDU5572平面幾何問題

2021-07-08 15:05:36 字數 1116 閱讀 7110

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表示所有圓的半...