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

已知矩形两对角顶点及长宽比 计算剩余顶点坐标的Python方法

求解矩形剩余顶点坐标方案

核心思路

  • 先计算已知对角顶点的对角线向量与对角线长度
  • 结合给定的长宽比,推导出矩形两条邻边的长度
  • 构造与对角线方向垂直的单位向量,结合中点坐标即可推导剩余两个顶点的坐标

注:由于仅给定对角顶点和长宽比,最终会得到两组互为镜像的合法解,可根据实际场景选择对应结果

Python实现代码

import math

def calculate_remaining_points(p1, p2, aspect_ratio=1/94):
    # 计算中点坐标
    mx = (p1[0] + p2[0]) / 2
    my = (p1[1] + p2[1]) / 2
    
    # 计算对角线向量和对角线长度
    dx = p2[0] - p1[0]
    dy = p2[1] - p1[1]
    diag_len = math.hypot(dx, dy)
    
    # 根据长宽比计算边的长度
    # 设短边长度为w,长边为w/aspect_ratio,满足w² + (w/aspect_ratio)² = diag_len²
    w = diag_len / math.sqrt(1 + (1/aspect_ratio)**2)
    long_side = w / aspect_ratio
    
    # 计算对角线方向的单位向量
    unit_dx = dx / diag_len
    unit_dy = dy / diag_len
    
    # 计算垂直于对角线的单位向量(两个方向对应两组解)
    perp_dx1 = -unit_dy
    perp_dy1 = unit_dx
    perp_dx2 = unit_dy
    perp_dy2 = -unit_dx
    
    # 计算顶点偏移量
    offset_x = (long_side**2 - w**2) / (2 * diag_len) * unit_dx
    offset_y = (long_side**2 - w**2) / (2 * diag_len) * unit_dy
    perp_offset = (long_side * w) / diag_len
    
    # 第一组解
    p3_1 = (
        mx + offset_x + perp_offset * perp_dx1,
        my + offset_y + perp_offset * perp_dy1
    )
    p4_1 = (
        mx + offset_x + perp_offset * perp_dx2,
        my + offset_y + perp_offset * perp_dy2
    )
    
    # 第二组镜像解
    p3_2 = (
        mx - offset_x + perp_offset * perp_dx1,
        my - offset_y + perp_offset * perp_dy1
    )
    p4_2 = (
        mx - offset_x + perp_offset * perp_dx2,
        my - offset_y + perp_offset * perp_dy2
    )
    
    return (p3_1, p4_1), (p3_2, p4_2)

# 代入给定参数计算
p1 = (6.237204, 51.071833)
p2 = (6.237195, 51.071836)
group1, group2 = calculate_remaining_points(p1, p2)

print("第一组解:")
print(f"P3: {group1[0]}, P4: {group1[1]}")
print("第二组解:")
print(f"P3: {group2[0]}, P4: {group2[1]}")

输出结果参考

第一组解:
P3: (6.237362690308713, 51.07239887876331), P4: (6.237036309691287, 51.07127012123669)
第二组解:
P3: (6.237036309691287, 51.07127012123669), P4: (6.237362690308713, 51.07239887876331)

可根据实际的矩形朝向需求选择对应组的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:15:03