汇总篇:计算几何汇总
#include<cmath>
class point{
public:
double x;
double y;
point(double x_=0,double y_=0){
x=x_;
y=y_;
}
point(point p):x(p.x),y(p.y){}
void set(point p){
x=p.x;
y=p.y;
}
friend const point operator+(const point& p1,const point& p2){
return point(p1.x+p2.x,p1.y+p2.y);
};
friend const point operator-(const point& p1,const point& p2){
return point(p1.x-p2.x,p1.y-p2.y);
};
friend const point operator*(const point& p,const double& m){
return point(p.x*m,p.y*m);
};
friend const point operator*(const double& m,const point& p){
return point(p.x*m,p.y*m);
};
friend const point operator/(const point& p,const double& m){
return point(p.x/m,p.y/m);
};
//friend ostream& operator <<(ostream& out,point& a);
};
typedef point vect2;//重命名,向量也是用坐标表示
double angle(point O,point A,point B){
return acos(dot(O,A,B)/(dis(O,A)*dis(O,B)));
}
//扇形面积alpha*pi*r*r/2*pi
double sectorArea(point O,point A,point B,double r){
double alpha=angle(O,A,B);
return alpha*r*r/2;
}