gpt4 book ai didi

javascript - 对象数据随机变化 Fabricjs

转载 作者:行者123 更新时间:2023-11-27 23:02:18 25 4
gpt4 key购买 nike

我得到了一段记录鼠标点击并在最后绘制多边形的代码。绘制多边形后,它会将坐标数组字符串化,以供将来处理。

我面临的问题是,记录和绘制的内容和字符串化的内容是完全不同的两组数据。

例如

(index):169 Mouse click at 543 179
(index):171 Object {x: 543, y: 179} contains value, match as per mouse click
(index):169 Mouse click at 310 592
(index):171 Object {x: 310, y: 592} contains value, match as per mouse click
(index):169 Mouse click at 735 480
(index):171 Object {x: 735, y: 480} contains value, match as per mouse click
(index):246 [{"x":20.5,"y":-206.5},{"x":-212.5,"y":206.5},{"x":212.5,"y":94.5}] is stringified value

JS

    var coords = [];
var canvas = new fabric.Canvas('canvas');

canvas.on('mouse:down', function (options) {
getCoordinates(options);
});



$('.drawReady').click(function(){
drawMyPolygon(coords, 1);
stringifyTheData();
});

function drawMyPolygon(retData, tmpId) {
var polygon = new fabric.Polygon(retData, {
fill: 'purple',
selectable: true,
lockMovementX: true,
lockMovementY: true,
id: tmpId
});

canvas.add(polygon);

};
function getCoordinates(options) {
var pointer = canvas.getPointer(event.e);
coords.push({x: pointer.x, y: pointer.y});
}

function stringifyTheData() {
var retVal = JSON.stringify(coords);
}

最佳答案

您似乎使用的是 FabricJS 1.6.0 之前的版本在 1.5.0 中,fabricjs 正在修改点数组,而现在则不会。

调整包括减去多边形顶部、左侧和一半宽度的每个点,使其以原点为中心。

在传递到多边形之前更新或克隆点数组。

关于javascript - 对象数据随机变化 Fabricjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36975578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com