【其他算法】根据坐标计算三角形的角度

def cal_degree(p1, p2, p3):
    """
    计算p1-p2-p3构成的角度
    先计算边长,然后根据cosB = (a*a + c*c -b*b) / (2*a*c)
    """
    x1, y1 = p1
    x2, y2 = p2
    x3, y3 = p3
    a = math.sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2))
    b = math.sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2))
    c = math.sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2))
    cosB = (a * a + c * c - b * b) / (2 * a * c)
    B = math.degrees((math.acos(cosB)))  # 先弧度再角度
    return B

 

posted @ 2022-12-08 15:39  我若成风者  阅读(171)  评论(0编辑  收藏  举报