Skip to main content

HTML5 Canvas 形状吸附旋转

在一些应用程序中,您可能希望在某些值附近进行旋转吸附。吸附使形状在提供的值附近“粘性”,并且工作方式类似于四舍五入。

最常见的吸附值是 0、45、90、135、180 等度数。吸附允许将旋转简单地设置为这些确切值。

例如,如果您在 45 度处有吸附点,用户将无法将旋转设置为 43 度。它将被四舍五入到 45 度。但用户仍然可以将旋转设置为 35 度,因为它距离 45 度太远,因此不会被吸附。

说明:尝试旋转一个形状。查看在 0、90、180 和 270 度处的吸附效果。

import Konva from 'konva';

const width = window.innerWidth;
const height = window.innerHeight;

const stage = new Konva.Stage({
container: 'container',
width: width,
height: height,
});

const layer = new Konva.Layer();
stage.add(layer);

const rect = new Konva.Rect({
x: 50,
y: 50,
width: 100,
height: 50,
fill: 'yellow',
stroke: 'black',
draggable: true,
});
layer.add(rect);

const tr = new Konva.Transformer({
nodes: [rect],
rotationSnaps: [0, 90, 180, 270],
rotationSnapTolerance: 30,
});
layer.add(tr);