Javascript FabricJS strokeWidth-strokeDashArray Bug?

Javascript FabricJS strokeWidth-strokeDashArray Bug?,javascript,html5-canvas,fabricjs,Javascript,Html5 Canvas,Fabricjs,我在fabricjs中绘制了一条虚线和一个虚线矩形,但是当设置strokeWidth太高时,line/rect无法正确绘制strokeDashArray时出现了一个问题 示例: 如果strokeDashArray:[10,2]和strokeWidh:1一切正常,但如果我设置strokeWidh:5则直线/矩形不再为虚线 我发现,设置strokeLineCap:“square”会把事情搞砸,但我不明白为什么 小提琴-示例: 非常感谢您的帮助:Dasturur(contributor fabric.

我在fabricjs中绘制了一条虚线和一个虚线矩形,但是当设置strokeWidth太高时,line/rect无法正确绘制strokeDashArray时出现了一个问题

示例:
如果
strokeDashArray:[10,2]
strokeWidh:1
一切正常,但如果我设置
strokeWidh:5
则直线/矩形不再为虚线

我发现,设置strokeLineCap:“square”会把事情搞砸,但我不明白为什么

小提琴-示例:

非常感谢您的帮助:D

asturur(contributor fabric.js)撰写了以下解释:

没有搞砸。这就是正方形的工作原理。你必须做一次冲刺 在“黑白”之间有更多的空间


从下面的屏幕截图中可以看到,线帽修改了线的可视长度

虽然每一行的虚拟长度都相同,但每一行的末尾和开头都会附加一个strokewidth/2片段。
因此,如果strokeWidth为5,再加上一个2.5,那么你的strokedash[10,2]就被消耗掉了,其中2是破折号之间的空白。

如果你提到这个论点,我会非常感激,拜托,你真的认为这是一个好答案吗?当然,这不是答案。这是对github问题的评论。我为每个人都添加了一个明确的答案。我为每个人添加了一个更明确的答案,如果可能的话,接受它。