可以使用Konva.js中的Transformer改变线的旋转和大小,同时跟踪其宽度、高度和旋转。Transformer是一个包含了一系列使用于移动、缩放、旋转及斜切等变换的虚拟节点。下面是代码示例:
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
var layer = new Konva.Layer();
stage.add(layer);
var line = new Konva.Line({
points: [100, 50, 300, 50],
stroke: 'blue',
strokeWidth: 5,
lineCap: 'round',
draggable: true
layer.add(line);
var tr = new Konva.Transformer({
node: line,
centeredScaling: true,
rotationSnaps: [0, 90, 180, 270],
resizeEnabled: false
layer.add(tr);
line.on('transform', function() {
var width = line.width() * line.scaleX();
var height = line.height() * line.scaleY();
var rotation = line.rotation();
console.log('width: ' + width);
console.log('height: ' + height);
console.log('rotation: ' + rotation);
layer.draw();
在这个例子中,我们首先将一个线条添加到层中,并创建了一个Transformer实例,将其node属性设置为线条,这样就可以对线条进行旋转、缩放等变换操作。我们还设置了一些其他属性,例如centeredScaling自动更新中心点、rotationSnaps设置旋转角度的吸附点、resizeEnabled禁止缩放线的宽度。我们还在线条的transform事件中更新了width、height和rotation的值,并输出到控制台上。最终将层添加到舞台中并绘制出来即可。