這些**未經過測試,存在安全隱患。。。。
const
double eps=
1e-8
;const
double dnf=
1e20
;const
double pi=
acos(-
1.0)
;const
int maxp=
1010
;//浮點型數值是否為0
intsgn
(double x)
//返回x的平方
double
sqr(
double x)
//二維點
struct point
point
(double xx,
double yy)
//輸入輸出
void
input
(void
)void
output
(void
)//過載比較運算子
bool
operator==(
const point &b)
const
bool
operator
<
(const point &b)
const
//過載加減乘除
point operator+(
const point &b)
const
point operator-(
const point &b)
const
point operator*(
const
double
&k)const
point operator/(
const
double
&k)const
//叉乘,叉積
double
operator^(
const point &b)
const
//點乘,點積
double
operator*(
const point &b)
const
//長度
double
len(
void
)//長度的平方
double
len2
(void
)//兩點距離
double
dis(
const point &b)
const
//計算pa,pb的夾角,就是這個點看a,b形成的角度
double
rad(
const point &a,
const point &b)
const
//化向量長度為r
point turn_to_r
(double r)
//逆時針轉90
point turn_left
(void
)//順時針轉90
point turn_right
(void
)//繞p點逆時針轉angle
point turn_p_angle
(const point &p,
double angle)
};
二維幾何 線類
這些 未經過題目測試,存在安全隱患。struct line 兩點 line const point ss,const point ee 點斜 line const point p,const double angle ax by c 0 line double a,double b,double c...
二維幾何模板 二維幾何基礎
二維幾何模板 include include include include include include include include include using namespace std 二維幾何基礎 struct point typedef point vector const doub...
二維幾何 點集直徑
點集直徑,即給定點之間的最大距離。兩兩枚舉的方法需要o n 2 時間,並不是很優秀。有乙個辦法可以更快的求出點集的直徑。首先求點集的凸包,則最大距離一定來自於凸包上的兩個頂點。由於凸包上的點的個數往往比原始點少很多,就算還是兩兩枚舉,速度也比直接列舉快很多,當然最壞情況下時間複雜度仍是o n 2 需...