首页 > 代码库 > 取任意四边形最长边

取任意四边形最长边

假设四边形如下

2-----1
|        |
|        |
3-----0

假设点集合按照0-3排序,有:Point[0]、Point[1]、Point[2]、Point[3]四个元素。

 

首先要用到的是两点坐标求距离公式:

//传入两点坐标,计算两点之间的距离
float
GetDistance(const Point A, const Point B){
  //公式:√[(x1-x2)^2+(y1-y2)^2]
return sqrt(pow((A.x - B.x),2) + pow((A.y - B.y),2));}

然后遍历四点,计算每个相邻点之间的距离

//--------------------------//先取得四点坐标point = ??;    //四边形四个角点坐标//--------------------------float len = 0; //最长距离float l;           //临时距离//--------------------------//遍历四点,计算相邻两点距离for(int i = 0; i < 4; i++){    //取得下一个点位置    int j = (i + 1) % 4;    //计算出两点坐标距离    l = GetDistance(point[i],point[j]);    //判断是否最长距离    if(l > len)        {        //更新最长距离        len = l;        }}//--------------------------std::cout << "最长距离:" << len << std::endl;

 

2015年1月22日

御风

取任意四边形最长边