编辑2:
Chrome 版本 35 中似乎没有不需要的行为
/编辑2
编辑:
我在澄清究竟是什么问题时遇到了一些麻烦。但是,定义路径后的任何转换都不应再影响路径,但这似乎是现在正在发生的事情。第二次清除堆栈会弄乱已经定义的路径。
/编辑
在过去的 8 个月里,我一直在开发一些在所有 5 种主要浏览器中都运行良好的绘图程序。嗯,直到今天。
为了防止线宽的缩放,我在渲染之前清除了转换堆栈,这一直很好,它仍然有效,除了在 Chrome 中。从今天起。
我想知道我正在做的事情是否存在根本性的错误,或者只是 Chrome。问题是,在创建路径之后,我应该能够对转换堆栈做任何我想做的事情,并且它不应该影响创建的路径的位置、缩放或旋转。
我正在尝试做的目标是拥有一个完全独立于形状特定转换的固定线宽。
// window specific transformation
ctx.setTransform(1, 0, 0, 1, 0, 0); // clear stack
ctx.translate(300, 300);
ctx.scale(1, -1);
// shape specific transformation
ctx.transform(a, b, c, d, e, f);
createPathOfShape(ctx);
// prevent scaling of line width
ctx.setTransform(1, 0, 0, 1, 0, 0); // clear stack
ctx.lineWidth = 1;
ctx.strokeStyle = "rgb(0, 0, 0)";
ctx.stroke();