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

已知矩形两点及宽度 求解任意旋转矩形的剩余两个顶点

任意旋转矩形未知顶点坐标求解方法

矩形排布示意图

前置已知条件

  • 两个黑色标注的矩形顶点坐标:记为$P_1(x_1,y_1)$、$P_2(x_2,y_2)$
  • 矩形宽度(红色标注边长):记为$w$
  • 两点属性:$P_1$与$P_2$属于矩形的同一边或对边

场景分组求解

分组1:两点属于矩形同一边

首先计算两点连线的边参数:

  1. 边向量:$\vec{v} = (x_2 - x_1, y_2 - y_1)$
  2. 边长度:$L = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$
  3. 边的单位方向向量:$\vec{u} = (\frac{x_2-x_1}{L}, \frac{y_2-y_1}{L})$
  4. 垂直于该边的两组单位法向量(对应矩形向边两侧延伸的两种场景):
    • 方向1:$\vec{n_1} = (-u_y, u_x)$
    • 方向2:$\vec{n_2} = (u_y, -u_x)$
      对应两组黄色顶点坐标:
  • 沿$\vec{n_1}$延伸:$P_3 = P_1 + w \times \vec{n_1}$,$P_4 = P_2 + w \times \vec{n_1}$
  • 沿$\vec{n_2}$延伸:$P_3 = P_1 + w \times \vec{n_2}$,$P_4 = P_2 + w \times \vec{n_2}$

分组2:两点属于矩形对边

此时两点连线为矩形对角线,先计算基础参数:

  1. 对角线长度:$D = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$
  2. 矩形另一条边长:$h = \sqrt{D^2 - w^2}$
  3. 对角线中点坐标:$M(\frac{x_1+x_2}{2}, \frac{y_1+y_2}{2})$
  4. 对角线单位方向向量:$\vec{u_d} = (\frac{x_2-x_1}{D}, \frac{y_2-y_1}{D})$
  5. 垂直于对角线的两组单位法向量(对应两种矩形排布场景):
    • 方向1:$\vec{n_1} = (-u_{d,y}, u_{d,x})$
    • 方向2:$\vec{n_2} = (u_{d,y}, -u_{d,x})$
      对应两组黄色顶点坐标:
  • 沿$\vec{n_1}$排布:
    $P_3 = M + \frac{h}{2} \times \vec{n_1} + \frac{w}{2} \times \vec{u_d}$
    $P_4 = M - \frac{h}{2} \times \vec{n_1} - \frac{w}{2} \times \vec{u_d}$
  • 沿$\vec{n_2}$排布:
    $P_3 = M + \frac{h}{2} \times \vec{n_2} + \frac{w}{2} \times \vec{u_d}$
    $P_4 = M - \frac{h}{2} \times \vec{n_2} - \frac{w}{2} \times \vec{u_d}$

以上四种求解结果完全覆盖示意图中的所有排布场景,实际使用时可根据所需矩形朝向选择对应的法向量方向即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:27:03