Fabricjs 克隆 canvas 从矩形中删除小数
Fabricjs cloning canvas removes decimals from rectangle
我有以下代码在 fabricjs 中克隆了一个 canvas:
var canvas = new fabric.Canvas('c');
canvas.width = 644.51234567;
canvas.height = 644.51234567;
var rect = new fabric.Rect({
left: 0,
top: 0,
width: canvas.width,
height: canvas.height,
fill: 'rgba(255,127,39,1)',
strokeWidth: 0
});
canvas.add(rect);
canvas.renderAll();
canvas.clone(function(cloneCanvas) {
canvas.forEachObject(function(obj) {
alert("Width of original rect: "+obj.width);
});
cloneCanvas.forEachObject(function(obj) {
alert("Width of cloned rect: "+obj.width);
});
});
https://jsfiddle.net/s35fxaby/8/
正如您在 运行 代码中看到的那样,克隆 canvas 会更改矩形上的小数位数。
这对我来说是个问题,因为我的其余代码取决于原件和副本的小数位数相同。
我能做些什么吗?比如防止克隆函数四舍五入?
fabric.Object.NUM_FRACTION_DIGITS = 10;
值 = 您希望小数点后的位数。
默认值为 2。
我有以下代码在 fabricjs 中克隆了一个 canvas:
var canvas = new fabric.Canvas('c');
canvas.width = 644.51234567;
canvas.height = 644.51234567;
var rect = new fabric.Rect({
left: 0,
top: 0,
width: canvas.width,
height: canvas.height,
fill: 'rgba(255,127,39,1)',
strokeWidth: 0
});
canvas.add(rect);
canvas.renderAll();
canvas.clone(function(cloneCanvas) {
canvas.forEachObject(function(obj) {
alert("Width of original rect: "+obj.width);
});
cloneCanvas.forEachObject(function(obj) {
alert("Width of cloned rect: "+obj.width);
});
});
https://jsfiddle.net/s35fxaby/8/
正如您在 运行 代码中看到的那样,克隆 canvas 会更改矩形上的小数位数。 这对我来说是个问题,因为我的其余代码取决于原件和副本的小数位数相同。
我能做些什么吗?比如防止克隆函数四舍五入?
fabric.Object.NUM_FRACTION_DIGITS = 10;
值 = 您希望小数点后的位数。
默认值为 2。