Kinetic js画布线条和形状在中心模糊,但在接近边缘时变得清晰

时间:2013-10-02 15:24:16

标签: html5 html5-canvas kineticjs antialiasing

这是plunkr

http://plnkr.co/edit/05OtTgW78wibGz57Lrao

当视口宽度变量设置为1366时。 当你将光标移动到中心附近时,你会看到线条几乎是灰色的并且模糊不清。但是当靠近边缘移动时,它会变得清脆和黑色。

但是在视口宽度设置为1000的情况下,它在plunkr中进行了注释。所有地方,边缘,中心的线条都很清晰。

此场景适用于所有绘图,而不仅仅是线条在中心绘制的任何东西都有点暗淡,而在边缘处,它在舞台的某个宽度处是锐利的。

这里的另一个问题是尽管我已经将垂直线指定为虚线,但它仍然是连续线,这也取决于所提到的视口高度。

任何人对此都有任何见解???

2 个答案:

答案 0 :(得分:1)

关于你的第二个问题......

以下是如何获取缺少的垂直虚线:

  • 完全消除viewLinesVert。
  • 消除context.closePath()

你的垂直线会变成虚线。

BTW,Firefox尚不支持context.setLineDash,因此您的应用程序在FF中失败。

关于你的第一个问题......

如果使用context.lineWidth = 1.0,您的线条会更清晰。

是的,我注意到你的垂直线在某些位置变得有些模糊。

  • 在IE中,当垂直线接近最右侧时,模糊发生。
  • 在Chrome中,模糊发生在中间,而且发生在更大的区域。

坦率地说,我不知道为什么,但这可能是由于破折号的抗锯齿造成的。

是的,我注意到你的水平线是 [Ok |模糊|好的模糊] 随着它移动。

这肯定是由于水平线的抗锯齿造成的。

我还在最新的KineticJS版本4.7.2中尝试了您的代码,并且仍然存在模糊。

...然而

当我在原生画布(而不是KineticJS)中重新创建代码时,在垂直或水平线上都不会出现模糊 - 除非线条在移动时(这是不相关的运动模糊)。

所以.....

详细说明您的问题并提交错误报告:

https://github.com/ericdrowell/KineticJS/issues?direction=desc&sort=created&state=open

答案 1 :(得分:0)

这只是因为我在舞台宽度中使用了浮点坐标...

得到了kinetic社区的答案..谢谢