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