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));}//模长
{模板}向量操作
最新推荐文章于 2021-11-09 18:40:10 发布