计算几何模板整理

计算几何模板整理

#include < iostream >
#include
< cmath >
#include
< algorithm >
using   namespace  std;

struct  Point  //  定义一个点
{              
    
double x, y;  
    Point() 
{} 
    Point(
double x0, double y0): x(x0), y(y0) {} //Point a(1.0,2.0);
}


struct  Line //  定义一条线段,用起点和终点来表示 
{               
    Point p1, p2; 
    Line() 
{} 
    Line(Point p10, Point p20): p1(p10), p2(p20) 
{} //Line a(p1,p2);
}


// 定义叉积:
// 1.如果返回值为正数,表明sp在op->ep(op指向ep)这条射线的顺时针方向;
// 2.如果返回值为负数,表明sp在op->ep(op指向ep)这条射线的逆时针方向;
// 3.如果返回值为0,表明三点共线
double  multiply(Point sp,Point ep,Point op)
{
    
return((sp.x-op.x)*(ep.y-op.y) - (ep.x-op.x)*(sp.y-op.y));
}

你可能感兴趣的:(计算几何模板整理)