点是否在一条直线判断-共线判断

//判断三个点是否在一条直线上
dfX[0] = vdfGeoX.at(nF1);
dfY[0] = vdfGeoY.at(nF1);
dfX[1] = vdfGeoX.at(nF2);
dfY[1] = vdfGeoY.at(nF2);
dfX[2] = vdfGeoX.at(nF3);
dfY[2] = vdfGeoY.at(nF3);


double dx1= dfX[1] - dfX[0];
double dx2= dfX[2] - dfX[0];
double dy1= dfY[1] - dfY[0];
double dy2= dfY[2] - dfY[0];
if( fabs(dy2*dx1-dx2*dy1)<1e-8)
{
//三点共一线

}
else 
{
//三点不共线
}

你可能感兴趣的:(算法)