javascript 如何找到一个矩形角时,缩放新的角X和Y?

sczxawaw  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(54)

我有一个JS应用程序,从左上角顺时针方向绘制一个坐标为(1,5),(3,3)(5,5),(7,3)的矩形。如果我拖动右上角,我将得到新的x,y,这将是4,2,所以我的新矩形坐标将是[1,5],[4,2,] [6,4][3,7]
告诉我的逻辑来计算这个甚至拖动是在任何角落。相关点需要重新计算与保持形状为矩形附加图像,以更好地理解在图像虚线是新的线后,拖动TR BR和TL需要计算
image
JS代码从新的角落和旧的bbox数据中找到新的坐标

mutmk8jj

mutmk8jj1#

首先获取初始矩形的尺寸

w = tr.x - tl.x
h = bl.y - tl.y

字符串
移动TR创建新的向量,找到它的归一化版本

dx = new_tr.x - tl.x
dy = new_tr.y - tl.y
new_w = sqrt(dx*dx+dy*dy)
udx = dx/new_w  
udy = dy/new_w


现在

new_bl.x = tl.x - h * udy  //check signs in these two formulas
new_bl.y = tl.y + h * udx

new_br.x = new_bl.x + dx
new_br.y = new_bl.y + dy

相关问题