2014-09-03 89 views
0

我有一个矩形和一个矩形矩阵。
我想检查矩阵中哪个矩形与单个矩形碰撞最多,并改变其位置以适应矩阵的矩形。
这是我的矩形是如何表示对象与画布上的对象矩阵之间的碰撞

{ 
x: X, 
y: Y, 
width: WIDTH, 
height: height 
} 

的矩阵是矩形的只是一个简单的阵列(9)。正如你在下面的图片中看到的矩形可以适应9个方形位置中的任何一个,问题是我不知道如何计算矩形与哪个矩形碰撞最多。
非常感谢。我会解答任何答案。
enter image description here

回答

1

“最填充”单元格是其中心点最接近矩形中心点的单元格。

可以calc下的任何细胞& rectangle5中心点之间的距离是这样的:

var dx=rect5CenterX-cellCenterX; 
var dy=rect5CenterY-cellCenterY; 
var distance=Math.sqrt(dx*dx+dy*dy); 

用最短的细胞是最充满的电池。

+1

你提到它是关于矩形的中心,而不是它们的角落之一。我发表这样的评论,因为这些数字通常是相对于他们的一些角落而绘制的。 – 2014-09-03 15:26:14

0

我想这是你在这找什么

JSFiddle

我们已经检查了碰撞各个角落和中心。
变量xy给出与对象碰撞的瓦片的所有索引。

代码被评论和易于理解;
更改不同变量,如w,h,tw,th,originx,originy 以便更好地理解。