Изменение размера Rect
Как реализовать изменение размера прямоугольника или квадрата пропорционально? Допустим потянув за поинтер который находится на нижнем левом угле. Имеются координаты поинтера X|Y Координаты мыши на полотне X|Y Координаты offset поинтера X = stageX - pointer.x | Y = stageY - pointer.y Размеры прямоугольника или квадрата
P4.on("mousedown", (e)=>
{
e.target.offset = {x: e.stageX - e.target.x, y: e.stageY - e.target.y}
});
P4.on("pressmove", (e)=>
{
var x = e.stageX - e.target.offset.x;
var y = e.stageY - e.target.offset.y;
e.target.x = x;
e.target.y = y;
});
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Если ширина была w, высота h, а мышь находится на расстоянии dx, dy от базового угла, то
if (w * dy > h * dx) {
new_w = dx;
new_h = dx * h / w;
}
else {
new_h = dy;
new_w = dy * w / h;
}
знак больше или меньше в ифе скорректируйте по желаемому поведению
