2011-03-11 102 views
0

我注意到,勾画一个框并填充一个框会导致不同大小的框。在处理命中检测时,这有点让人头痛。例如,如果我有一个我正在绘制的圆和我正在绘制的一个矩形,我想知道这两个相交是否用于动画。有没有办法解决?一个简单的解决方案是将线宽设置为零,但这不是一个选项。html canvas sketch vs填充宽度

回答

1

您需要将lineWidth添加到描边对象的计算中。

调用fillRect(0,0,60,60)让你一个60x60箱开始(0,0),但如果你正在抚摸你必须添加一半的线宽的每个侧面。

所以一个线宽6打电话strokeRect(0,0,60,60)真的让你66x66框起始于(-3,-3)

由于斜率的原因,数学可能会略有不同,但对于大多数应用程序,您可以忽略它。

一个简单的解决方案可能会或可能不会与您的程序一起飞行,对于每个填充的对象,调用fillRect和strokeRect。该对象将变得稍大,但它的尺寸与您的描边对象一致。这种方法的有效性当然完全取决于你迄今为止写的东西。

+1

谢谢,这正是我所期待的。 – puk 2011-03-11 20:26:58