求坐标系中三角形的面积

学习python 高淇400 练习
遇到的问题:使用input()得到的x,y为字符串,未将其转换导致后续计算步骤出错。
           忘记海伦公式以及判断三点共线的条件,通过上网搜索获得。
           写完发现未考虑x相等或y相等的情况因此代码还有待改善。


# 输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示。
import math
# 输入三个坐标
x1,y1=[float(a) for a in input("请输入点A的坐标(x,y): ").split(',')]
x2,y2=[float(b) for b in input("请输入点B的坐标(x,y): ").split(',')]
x3,y3=[float(c) for c in input("请输入点C的坐标(x,y): ").split(',')]

# 判断三个点能否构成一个三角形
if (y3-y2)/(x3-x2)==(y2-y1)/(x2-x1):
    print('坐标错误,不能构成三角形')

# 利用海伦公式计算面积,算出各值
else:
    L1 = math.sqrt(math.fabs(pow(y2 - y1, 2)) + math.fabs(pow(x2 - x1, 2)))
    L2 = math.sqrt(math.fabs(pow(y3 - y1, 2)) + math.fabs(pow(x3 - x1, 2)))
    L3 = math.sqrt(math.fabs(pow(y3 - y2, 2)) + math.fabs(pow(x3 - x2, 2)))
    p = (L1 + L2 + L3) / 2
    S = math.sqrt(p * (p - L1) * (p - L2) * (p - L3))
    print('三角形的面积为:{:.2f}'.format(S))

eg. 请输入点A的坐标(x,y): 2,4
      请输入点B的坐标(x,y): 3,5
      请输入点C的坐标(x,y): 4,6
      坐标错误,不能构成三角形

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值