二維幾何 點類,常量設定

2021-09-27 06:32:56 字數 1692 閱讀 9890

這些**未經過測試,存在安全隱患。。。。

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 需...