konvajs - 线的缩放点 - konvajs
问题描述
我希望在 KonvaJS 线上进行转换。我已经完成了所有工作,并且可以缩放对象,但是我希望它可以调整线的点,而不是在我抓住调整大小手柄时设置 scale 属性。也会考虑在路径中执行此操作。
所以目标是我的对象 scaleX 和 scaleY 始终为 1,它只是扩展的点。
这是可能吗?
解决方案
您只需要将比例应用于points
属性:
shape.on('transformend', () => {
const oldPoints = shape.points();
const newPoints = [];
for(var i = 0; i< oldPoints.length / 2; i++) {
const point = {
x: oldPoints[i * 2] * shape.scaleX(),
y: oldPoints[i * 2 + 1] * shape.scaleY(),
}
newPoints.push(point.x, point.y);
}
shape.points(newPoints);
shape.scaleX(1);
shape.scaleY(1);
layer.draw();
})
推荐阅读
- arrays - 带有 ObjectId 数组的 MongoDB $lookup
- angular - Angular - 表单验证器在初始加载时不起作用
- generics - 有理数对象的整数输入的通用构造函数
- c++ - 使用 SIMD 提高数组的浮点点积的性能
- javascript - 使用 node.js 中的 crypto 使用公共/私有十六进制密钥对加密/解密
- math - 从给定的两组数字生成唯一数字的最佳方法
- python - 基于“Channel LSTM”的基于 LSTM 的 EEG 信号分类架构
- git - git 中的作者/提交者数据不尊重 GIT_CONFIG 变量
- javascript - 如何更改 Tabulator.js 中标题复选框的行为?
- python - 如何通过计算将字符串转换为日期?