判断线段相交,往往都是以平面坐标系为基础来判断,如果坐标系是地球坐标系,知道的是经纬度应该如何判断呢?本文主要关注的就是此问题。
假设:线段各点之间距离不是很大,可认为都在同一平面上。
如果线段长度很长,无法满足假设的情况,则此算法未必适用。
提供功能:
* 函数名称: GetXY
* 功能描述: 获得点A相对于点B的平面坐标系
* 函数名称: CrossFuntion
* 功能描述: 求两矢量的叉积
*类名称:TLine
*功能:判断两线段是否相交
struct TSectorPoint
{
double dCellLon;
double dCellLat;
};
struct TXYPoint
{
double X;
double Y;
};
//线段类
class TLine
{
public:
TLine(const TSectorPoint StartPoint,const TSectorPoint EndPoint);
bool IsLineCross(TLine line);
private:
TSectorPoint P1;
TSectorPoint P2;
};
/**********************************************************************
* 函数名称: GetXY
* 功