交叉功能

时间:2010-11-01 02:11:53

标签: c++

我正在检查两个对象的交集..我有一个类MBR,数据会员低[2]和高[2] ..但我不是getiing intersect..c你解释这个函数..

intersects(const MBR* h) const
{
 for (int i = 0; i < 2; i++) 
 {
  if (low_[i] > h->high_[i] || high_[i] < h->low_[i]) 
   return FALSE;
 }
 return TRUE;

3 个答案:

答案 0 :(得分:3)

intersects将MBR与另一个MBR进行比较,如果第一个MBR low[]中的任何值大于第二个MBR {{1}中的值(在各个索引中),则返回FALSE或者,如果第一个MBR的high[]中的任何值小于第二个MBR的high[]中的值(在相应的索引中)。否则返回TRUE。

答案 1 :(得分:1)

不太确定你的意思是交叉。如果你在谈论集合的交集,你应该使用std::set_intersection而不是试图自己实现这种事情。请记住,std::set_intersection要求输入已经排序。

答案 2 :(得分:1)

如果一个框的上边框小于另一个框的下边框,则两个框不相交。同样,如果一个盒子的下边框大于另一个盒子的上边框。否则两个框相交。

对X坐标和Y坐标都进行了检查。