您的位置:首页 > 其它

[数学几何]取任意四边形最长边

2015-05-23 21:52 211 查看
取任意四边形最长边

取任意四边形最长边

假设四边形如下

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日
御风
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: