开始学习计算几何:
1 首先是精度控制,由于double存在精度误差,所以不能直接比较
double fabs(double x){
if(x<0){
return -x;
}else{
return x;
}
}
const double eps=1e-7;
int dcmp(double x){
if(fabs(x)<eps){
return 0;
}else{
if(x>=0){
return 1;
}else{
return -1;
}
}
}
2 接下来表示向量
向量可以视为在平面上的移动
struct vect{
double x,y;
vect(double a=0,double b=0){
x=a;
y=b;
}
};
3 接下来表示点
其实和向量类似,就是两个坐标,所以改一下变量名吧,不改也没关系
struct point{
double x,y;
point(double a=0,double b=0){
x=a;
y=b;
}
};
4 点多了就是直线
直线的表示方法很多,可以一个点加一个向量,可以两个点,也可以一次函数表示
struct line{
point p;
vect v;
line(point P=point(0,0),vect V=vect(0,0)){
p=P;
v=V;
}
};
。。。。打到这里突然就不想学了,好,果断弃坑