我正在使用 Konva.js 在浏览器中对数据可视化进行注释。一个常见的用例是在形状(矩形、椭圆形)及其描述(文本节点)之间绘制线条。用户需要拖动、旋转线条并调整其大小。调整大小仅限于线宽。
目前正在添加线路及其变压器,如下:
var line = new Konva.Line({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
points: [0, 0, 100, 0],
stroke: '#000',
strokeWidth: 3,
lineCap: 'round',
lineJoin: 'round',
draggable: true,
id: id,
strokeScaleEnabled: false,
hitStrokeWidth: 15
});
layer.add(line);
var tr = new Konva.Transformer({
node: line,
enabledAnchors: ['middle-left', 'middle-right']
});
layer.add(tr);
目前,正确定位线条并不是很直观,因为它需要用户使用旋转、中左和中右锚点分别旋转线条和调整线条大小。
相反,我正在寻找一种使用中左和中右锚点同时旋转和调整线条大小的方法。我的灵感来自于 PowerPoint - 线条两端只有锚点,可用于同时调整大小和旋转:
我尝试在 Konva 的 Transformer _handleMouseMove 函数中组合旋转器和中左/中右功能,但这不能按预期工作。
有没有人找到一种方法可以使用左锚点和右锚点同时完成这两件事?