如何在 KonvaJS 中的变压器上设置默认(或基础)旋转?
How to set a default (or base) rotation on a transformer in KonvaJS?
一些上下文:
在我的应用程序中,我必须显示生成的 SVG,这不会导致任何问题。
但在某些时候,后端可能(并且将会)return 旋转(修改)的 SVG,我在 canvas 中显示(我知道实际的旋转)。
我的问题:
我的问题是我找不到设置变压器底座旋转的方法。
例如,我知道我插入的图像是一个 90° 旋转的图像,我希望在选择图像时通过变换器显示这个旋转(图像的基础 "canvas-rotation" 为 0 °, 变压器底座 "canvas-rotation" 为 90°).
总结:
换句话说,是否可以根据附加节点来抵消变压器旋转?
无法为 Konva.Transformer
设置 "rotation offset"。您必须为此使用节点的旋转。如果您有 SVG 图像,您可以旋转将其绘制到屏幕外 canvas,然后将 canvas 用于 Konva.Image
。
var imageObj = new Image();
imageObj.onload = function() {
const canvas = document.createElement('canvas');
canvas.width = 200;
canvas.height = 200;
const ctx = canvas.getContext('2d');
ctx.translate(canvas.width / 2, 0);
ctx.rotate(Math.PI / 4);
ctx.drawImage(imageObj, 0, 0, canvas.width * Math.cos(Math.PI / 4), canvas.height * Math.cos(Math.PI / 4))
var yoda = new Konva.Image({
x: 60,
y: 60,
image: canvas,
draggable: true
});
// add the shape to the layer
layer.add(yoda);
const tr = new Konva.Transformer({
node: yoda
})
layer.add(tr);
layer.draw();
};
imageObj.src = 'https://konvajs.org/assets/yoda.jpg';
一些上下文:
在我的应用程序中,我必须显示生成的 SVG,这不会导致任何问题。
但在某些时候,后端可能(并且将会)return 旋转(修改)的 SVG,我在 canvas 中显示(我知道实际的旋转)。
我的问题:
我的问题是我找不到设置变压器底座旋转的方法。
例如,我知道我插入的图像是一个 90° 旋转的图像,我希望在选择图像时通过变换器显示这个旋转(图像的基础 "canvas-rotation" 为 0 °, 变压器底座 "canvas-rotation" 为 90°).
总结:
换句话说,是否可以根据附加节点来抵消变压器旋转?
无法为 Konva.Transformer
设置 "rotation offset"。您必须为此使用节点的旋转。如果您有 SVG 图像,您可以旋转将其绘制到屏幕外 canvas,然后将 canvas 用于 Konva.Image
。
var imageObj = new Image();
imageObj.onload = function() {
const canvas = document.createElement('canvas');
canvas.width = 200;
canvas.height = 200;
const ctx = canvas.getContext('2d');
ctx.translate(canvas.width / 2, 0);
ctx.rotate(Math.PI / 4);
ctx.drawImage(imageObj, 0, 0, canvas.width * Math.cos(Math.PI / 4), canvas.height * Math.cos(Math.PI / 4))
var yoda = new Konva.Image({
x: 60,
y: 60,
image: canvas,
draggable: true
});
// add the shape to the layer
layer.add(yoda);
const tr = new Konva.Transformer({
node: yoda
})
layer.add(tr);
layer.draw();
};
imageObj.src = 'https://konvajs.org/assets/yoda.jpg';