📜  查找给定循环四边形的每一侧的内角(1)

📅  最后修改于: 2023-12-03 15:10:46.333000             🧑  作者: Mango

查找给定循环四边形的每一侧的内角

题目描述

给定一个循环四边形的四个点的坐标,编写一个程序来查找每一条边所对应的内角。

循环四边形是指四个点构成的四边形,其中第一个点和最后一个点也是相邻的。

内角是指两条相邻边所夹的角度,角度应该以度数为单位,并且应该给定一个小数点后两位的精度。如果两条相邻边之间的夹角是钝角,则应该返回负数。

函数签名
def find_interior_angles(p1: Tuple[float, float], p2: Tuple[float, float], p3: Tuple[float, float], p4: Tuple[float, float]) -> List[float]:
    pass
输入
  • p1p2p3p4($(-10^7 \leq x, y \leq 10^7)$)- 给定循环四边形的四个点的 $(x, y)$ 坐标。坐标是一个以逗号分隔的字符串,例如 "1,2"
输出
  • List[float] - 每一条边所对应的内角的列表。

列表中的每个元素应该是一个小数,表示相邻两条边之间的夹角,精度为两位小数。如果两条相邻边之间的夹角是钝角,则应该返回负数。

例子
例子1
assert find_interior_angles("1,1", "1,4", "4,4", "4,1") == [90.0, -90.0, -90.0, 90.0]

在这个例子中,给定的四边形是一个正方形,每条边都是90度的角度。

例子2
assert find_interior_angles("1,1", "1,4", "4,2", "4,1") == [23.13, -156.87, -23.13, 156.87]

在这个例子中,给定的四边形不是正方形,每个内角的角度不是90度,并且其中两个角是钝角。