我注意到画一个盒子和填充一个盒子会导致不同大小的盒子。在处理命中检测时,这有点令人头疼。例如,如果我有一个正在绘制的圆和一个正在绘制的矩形,我想知道这两个是否相交以用于动画目的。有没有办法解决?一个简单的解决方案是将线宽设置为零,但这不是一个选项。
问问题
140 次
1 回答
1
您需要将 lineWidth 添加到描边对象的计算中。
调用fillRect(0,0,60,60)
会得到一个60x60
从 开始的框(0,0)
,但如果您正在抚摸,则必须在每一侧添加一半的线宽。
因此,使用 lineWidth6
调用strokeRect(0,0,60,60)
确实可以为您提供一个66x66
以(-3,-3)
.
由于斜接,数学可能略有不同,但对于大多数应用程序,您可以忽略它。
一个简单的解决方案可能会或可能不会与您的程序一起运行,即为每个填充对象调用 fillRect 和 strokeRect。该对象将变得稍大,但它的大小将与您的描边对象一致。当然,这种方法的有效性完全取决于您到目前为止的编写方式。
于 2011-03-11T13:22:48.037 回答