实验要求:
利用从键盘输入的字典数据来计算三角形面积。
三角形的顶点被存储在一个字典中。字典中的键对应顶点编号(1、2或3),而值则是顶点x、y坐标构成的二元组。例如,顶点为(0,0)、(1,0)和(0,2)的三角形可用字典vertices表示为:
vertices = {1: (0,0), 2: (1,0), 3: (0,2)}
输入三个顶点数据并打印输出三角形的面积。
代码还是有瑕疵的欢迎大家批评指正
下面是代码块:
#字典三角形
import math #引用数学库
x1, y1 = eval(input("请输入第一个顶点:"))
x2, y2 = eval(input("请输入第二个顶点:"))
x3, y3 = eval(input("请输入第三个顶点:"))
dict1 = []
dict2 = []
dict3 = []
dict1.append(x1)
dict1.append(y1)
dict2.append(x2)
dict2.append(y2)
dict3.append(x3)
dict3.append(y3)
Dict = {1:dict1, 2:dict2, 3:dict3}
print(f"vertices ={Dict}")
# 采用s=(a+b+c)/2求得半周长后用求面积公式求解
if (x1 - x2) * (y1 - y2) == (x2 - x3) * (y2 - y3):
print('三点在同一条直线上!')
else:
a = float(math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2))
b = float(math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2))
c = float(math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2))
s = (a + b + c) / 2
print("该三角形的三边分别为:", a, b, c)
# 计算三角线面积
area = float(math.sqrt((s * (s - a) * (s - b) * (s - c))))
print("该三角形的面积:", area)
实验输出结果:
符合实验要求,到这就结束了,感觉有用的话,记得点个赞哈。!!!!!!!