【发布时间】:2020-08-03 10:45:53
【问题描述】:
我正在使用 paper.js 来制作关卡编辑器。我目前正在研究如何正确调整矩形的大小
目前,我正在做类似的事情:
rect.onMouseDrag = event => {
let selectedNode = rect.selectedNode;
selectedNode.point.x += event.delta.x;
selectedNode.point.y += event.delta.y;
switch (rect.selectedNode.index) {
case 0:
rect.segments[1].point.x += event.delta.x;
rect.segments[3].point.y += event.delta.y;
break;
case 1:
rect.segments[0].point.x += event.delta.x;
rect.segments[2].point.y += event.delta.y;
break;
case 2:
rect.segments[3].point.x += event.delta.x;
rect.segments[1].point.y += event.delta.y;
break;
case 3:
rect.segments[selectedNode.index - 1].point.x += event.delta.x;
rect.segments[selectedNode.index - 3].point.y += event.delta.y;
break;
};
所以我只检查相邻的点并根据鼠标事件相应地移动它们。 它适用于 AABB 的
谁能解释或链接我调整矩形大小并保持矩形的正确算法是什么?我认为这个问题已经得到解决,但我找不到任何有用的东西。
谢谢:)
【问题讨论】: