问题描述
有Rectrect1,rect2;rect1.transform(matrix1);rect2.transform(matrix2);之后,怎么判断rect1和rect2是否有重叠部分?
解决方案
解决方案二:
解决方案三:
http://www.cnblogs.com/avril/archive/2012/11/13/2767577.html
解决方案四:
只要判断其中一个Rect的任意一个四人角的的坐标是否在另一个距型里面
解决方案五:
可以用intersectswith方法吗,这里的matrix1和matrix2中有个旋转在里面
解决方案六:
3楼可以去看看2楼的链接
解决方案七:
Rectanglerect1=newRectangle();Rectanglerect2=newRectangle();if(rect1.Contains(rect2))//碰撞
解决方案八:
6楼啊,你这是包含啊,我只要相交就可以了
解决方案九:
那改用IntersectsWith()
解决方案十:
Rectrect1=newRect();rect1.Size=newSize(100,100);rect1.Location=newPoint(0,0);Matrixmatrix1=newMatrix(0.707,0.707,-0.707,0.707,0,0);rect1.Transform(matrix1);Rectrect2=newRect();rect2.Size=newSize(100,100);rect2.Location=newPoint(120,0);Matrixmatrix2=newMatrix(1.414,1.414,-1.414,1.414,0,0);rect2.Transform(matrix2);为什么rect1.IntersectsWith(rect2)是false的啊
解决方案十一:
9楼,你只要将布局方式改为Canvas,不要用gird,然后将rect1和rect2添加到Canvas中,就可以检测到了。
解决方案十二:
这很困难。这要是能使用IntersectsWith,那么wpf简直太神了。不要随便使用“命中测试”。如果你能计算出Transform之后的新的“四角顶点”坐标,那么就可以计算出大的“外接矩形”的坐标。然后先判断两个“外接矩形”是否IntersectsWith相交,如果根本不相交就不需要再启动费时的“命中测试”了!