我真的很喜欢 Raphael Javascript 库,它对于使用 javascript 处理 SVG 非常有用。
但是有一个偏移值被添加到我不理解的生成的 svg 代码中。有谁知道它来自哪里以及如何避免它?
这是我的 JS 代码:
var paper = Raphael("canvas", 510, 510);
paper.clear();
paper.rect(0, 0, 500, 500, 10).attr({fill: "#fff", stroke: "black"});
生成的 SVG 代码是
<div id="canvas">
<svg width="510" height="510">
<desc>Created with Raphaël</desc>
<defs/>
<rect x="0.5" y="0.5" width="500" height="500" r="10" rx="10" ry="10" fill="#ffffff" stroke="#000000"/>
</svg>
</div>
为什么rect的x和y属性是0.5而不是0?
更新:似乎这些值是用下面的代码四舍五入的:
var round = function (num) {
return +num + (~~num === num) * .5;
};
有人知道原因吗?