You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Rect1向Rect2方向移动且保持Rect1原有尺寸不变的计算方法

矩形平移保持原尺寸的正确计算公式

问题根源

原公式对矩形的全部参数(包括宽高w、h)都执行了差值计算,导致平移后的矩形宽高被错误修改,才会出现尺寸增大的问题。矩形平移仅需要调整位置坐标,宽高参数完全沿用原Rect1的数值即可。

方案1:以左上角为坐标锚点的计算(最常用)

默认x/y为矩形左上角坐标,仅对坐标做差值运算:

  1. 计算两个矩形左上角的坐标差值
diff_x = x2 - x1
diff_y = y2 - y1
  1. 生成中间位置的新矩形,宽高保持w1、h1不变:
new_rect = {
  x1 + diff_x / 2,
  y1 + diff_y / 2,
  w1,
  h1
}

如果要自定义移动比例,把/2替换为比例系数k即可:k取值为0时完全不移动,取值为1时Rect1左上角完全对齐Rect2左上角,取值0.5即为中间位置。

new_rect = {x1 + diff_x * k, y1 + diff_y * k, w1, h1}

方案2:以中心为坐标锚点的计算

如果需要让两个矩形的中心点对齐到中间位置,使用以下计算逻辑:

  1. 先计算两个矩形的中心坐标
center1_x = x1 + w1 / 2
center1_y = y1 + h1 / 2
center2_x = x2 + w2 / 2
center2_y = y2 + h2 / 2
  1. 计算中心坐标差值,生成新矩形的坐标:
diff_cx = center2_x - center1_x
diff_cy = center2_y - center1_y
new_cx = center1_x + diff_cx / 2
new_cy = center1_y + diff_cy / 2
// 转换回左上角坐标输出,宽高保持不变
new_rect = {
  new_cx - w1 / 2,
  new_cy - h1 / 2,
  w1,
  h1
}

内容的提问来源于stack exchange,提问作者Andreas Vrachimis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:06:09