Javascript HTML5画布模式间距

Javascript HTML5画布模式间距,javascript,html,canvas,Javascript,Html,Canvas,我正在动态创建一个画布元素,我想在createPattern函数中将其用作模式。 但是,模式的实际大小不是整数值,而是十进制,具有动态大小。当然,不可能创建具有十进制大小的canvas元素 问题是:我可以让画布在图案瓷砖之间有一个十进制间距吗?这是不可能的。然而,有一个可能的解决办法- 假设所需的间距为0.5像素,则可以: 创建一个两倍于图案图像大小的画布,再加上一个额外的像素作为间距 将画布设置为图案 缩放变换主画布,这里是ctx.Scale(0.5,0.5) 设置填充样式并使用缩放位置填充

我正在动态创建一个画布元素,我想在createPattern函数中将其用作模式。 但是,模式的实际大小不是整数值,而是十进制,具有动态大小。当然,不可能创建具有十进制大小的canvas元素


问题是:我可以让画布在图案瓷砖之间有一个十进制间距吗?

这是不可能的。然而,有一个可能的解决办法-

假设所需的间距为0.5像素,则可以:

  • 创建一个两倍于图案图像大小的画布,再加上一个额外的像素作为间距
  • 将画布设置为图案
  • 缩放变换主画布,这里是
    ctx.Scale(0.5,0.5)
  • 设置填充样式并使用缩放位置填充区域(在这种情况下,所有坐标必须缩放为x2)。例如:
    如果要填充区域10、10到100、100,则需要使用20、20到200、200等,具体取决于实际比例,并假设原点未平移
缩放将强制模式为亚像素,因此您可以获得“小数线”的外观。只需记住在之后将比例缩小到原始比例(使用save()/restore()获得一个简单的解决方案)

如果希望间隙为0.33,则使用3作为因子,4表示0.25,依此类推