首页 > 其他 > 详细

取任意四边形最长边

时间:2015-01-22 17:43:42      阅读:314      评论:0      收藏:0      [点我收藏+]

假设四边形如下

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日

御风

取任意四边形最长边

原文:http://www.cnblogs.com/yufengs/p/4241778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!