向量运算有很多用途,判断两线段相交我们可以利用向量的叉积来计算。我们先来思考两线段相交的特点,显然是有一个公共点,也就是说对于每条线段来说,另一条线段总会穿过这条线段 所以线段的端点分布在另一条线段的两端
既然是两端我们自然可以用叉积来判断(因为叉积的方向性) 至此问题解决 下面放上一道集训的题目 里面三角形的相交就是用 这里的线段相交来搞的
补充:向量运算的c++写法
struct node
{
int x,y;
void read()
{
cin>>x>>y;
}
};
node operator-(node a,node b)
{
a.x-=b.x;
a.y-=b.y;
return a;
}//这里用到了函数重载 由点得到向量
int operator*(node a,node b)
{
return a.x*b.y-a.y*b.x;
}//重载向量叉积