深圳Unity3D培训
达内深圳龙华中心

185-8926-6248

热门课程

如何判断两个矩形相

  • 时间:2017-10-16 15:16
  • 发布:深圳Unity3D培训
  • 来源:达内新闻

如何判断两个矩形相

假定矩形是用一对点表白的(minx, miny) (maxx, maxy),那么两个矩形

rect1{(minx1, miny1)(maxx1, maxy1)}

rect2{(minx2, miny2)(maxx2, maxy2)}

订交的结果一定是个矩形,构成这个订交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是:

minx = max(minx1, minx2)

miny = max(miny1, miny2)

maxx = min(maxx1, maxx2)

maxy = min(maxy1, maxy2)

如果两个矩形不订交,那么打算获得的点对坐标一定满足:

( minx > maxx ) 或者 ( miny > maxy )

判定可否订交,和订交矩形是什么均可以或者用这个方法一体打算完成。

从这个算法的结果上,我们还可以或者大略的天生出下面的两个内容:

㈠ 订交矩形: (minx, miny) (maxx, maxy)

㈡ 面积: 面积的打算可以或者和判定一起结束

if ( minx>maxx ) return 0;

if ( miny>maxy ) return 0;

return (maxx-minx)*(maxy-miny)

第二种方法

两个矩形订交的条件:两个矩形的重心距离在X和Y轴上都小于两个矩形长或宽的一半之和.这样,分两次判断一下就行了.

bool CrossLine(Rect r1,RECT r2)

{

if(abs((r1.x1+r1.x2)/2-(r2.x1+r2.x2)/2)<((r1.x2+r2.x2-r1.x1-r2.x1)/2) && abs((r1.y1+r1.y2)/2-(r2.y1+r2.y2)/2)<((r1.y2+r2.y2-r1.y1-r2.y1)/2))

return true;

return false;

}

想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入达内,一起进入IT行业,跟着达内的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳Unity3D培训

上一篇:Unity3D中目标相对自身的前后左右方位判断
下一篇:VR来了,作为潜力股各行业要如何做好准备

马上预约三天免费体验课

姓名:

电话:

深圳Unity3D培训:Unity和ue4以后哪个发展好?

VR技术怎么样?在未来的前景如何?

Unity3D之异常

Unity3D中目标相对自身的前后左右方位判断

选择城市和中心
贵州省

广西省

海南省