好的,所以我似乎有工作代码,但我确信我可以做很多改进仍然是为了使它更有效等等 . 我现在也必须处理其他7个调整大小的句柄(这只是顶部 - 中间一个):
var RADIANS = Math.PI/180;
var rotated_coords = {x: coords.x, y: coords.y};
if (shape.rotate) {
var rads = -shape.rotate*RADIANS;
var middle = {x: shape.x + shape.w/2, y: shape.y + shape.h/2}; //
middle of rotation
var offset = {
x: middle.x - coords.x,
y: middle.y - coords.y
};
rotated_coords.x = middle.x - (offset.x * Math.cos(rads) - offset.y
* Math.sin(rads));
rotated_coords.y = middle.y - (offset.x * Math.sin(rads) + offset.y
* Math.cos(rads));
}
// 1. get centre before resize
var middle = {
x: shape.x + shape.w/2,
y: shape.y + shape.h/2
};
// 2. get bottom-middle of rotated shape
v