{模板}向量操作
阿新 • • 發佈:2019-02-16
typedef double LD;
struct PI
{
LD x,y;
PI(LD X = 0, LD Y = 0){x=X, y=Y;}
};
PI operator+(PI a,PI b){return PI(a.x + b.x, a.y + b.y);}//加法
PI operator-(PI a,PI b){return PI(a.x - b.x, a.y - b.y);}//減法
PI operator*(PI a,LD b){return PI(a.x * b, a.y * b);}//數乘
PI operator*(PI a,PI b){return PI(a.x * b.x - a.y * b.y, a.x * b.y + a.y * b.x);}//複數意義下乘法
LD operator^(PI a,PI b){return a.x * b.y - a.y * b.x;}//叉積
LD dot(PI a,PI b){return a.x * b.x + a.y * b.y;}//點積
LD lens(PI a){return sqrt(dot(a,a));}//模長