一些自动化算法

# 计算2个点之间的距离
def calculate_distance(X1, Y1, X2, Y2):
    return math.sqrt((X2 - X1)**2 + (Y2 - Y1)**2)

# 获得控制框上的某个点坐标,这个点坐标和任意一个点的距离是最近的
def closest_point_on_rectangle(bx1, by1, bx2, by2, x2, y2):
    # 将所有输入转换为浮点数
    bx1, by1, bx2, by2, x2, y2 = map(float, [bx1, by1, bx2, by2, x2, y2])
    # 分别计算点D到矩形框B的水平和垂直最短距离
    if bx1 <= x2 <= bx2:
        # 点D在矩形的水平范围内,水平坐标保持不变
        x_closest = x2
    else:
        # 点D在矩形水平范围外,水平坐标取矩形的左边或右边
        x_closest = bx1 if x2 < bx1 else bx2
    if by1 <= y2 <= by2:
        # 点D在矩形的垂直范围内,垂直坐标保持不变
        y_closest = y2
    else:
        # 点D在矩形垂直范围外,垂直坐标取矩形的上边或下边
        y_closest = by1 if y2 < by1 else by2
    return (x_closest, y_closest)

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注