# coding:utf-8

class point:
def __init__(self,x,y,name):
self.x = x
self.y = y
self.name = name '''两点距离公式'''
def distance(self,p2):
self.d=((self.x-p2.x)**2+(self.y-p2.y)**2)**0.5
return self.d '''获取两点距离'''
def getd(self,p2):
self.distance(p2)
print('点 ({},{}) 与 ({},{}) 的距离是 {} '.format(self.x,self.y,p2.x,p2.y,self.d)) '''判断这三点能否形成一个三角形'''
def istriangle(self,p2,p3):
self.l_list=[]
self.l_list.append(self.distance(p3))
self.l_list.append(p2.distance(p3))
self.l_list.append(self.distance(p2))
'''线段长度由小到大排序'''
self.l_list.sort()
if (self.l_list[0]+self.l_list[1]>self.l_list[2]) and (self.l_list[1]+self.l_list[2]>self.l_list[0]) and (self.l_list[2]+self.l_list[0]>self.l_list[1]):#长度判断
return '能构成三角形'
else:
return '不能构成' '''判断是哪种三角形'''
def whichtriangle(self,p2,p3):
result=self.istriangle(p2,p3)
if result=='不能构成':
return print('所以点',self.name,p2.name,p3.name,'无法构成一个三角形')
if self.l_list[0]**2+self.l_list[1]**2>self.l_list[2]**2:#锐角三角形
print('所以点',self.name,p2.name,p3.name,'能构成一个锐角三角形')
elif self.l_list[0]**2+self.l_list[1]**2==self.l_list[2]**2:#直角三角形
print('所以点',self.name,p2.name,p3.name,'能构成一个直角三角形')
elif self.l_list[0]**2+self.l_list[1]**2<self.l_list[2]**2:#钝角三角形
print('所以点',self.name,p2.name,p3.name,'能构成一个钝角三角行') if __name__ == '__main__':
'''第一组输入'''
try:
p1 = point(0, A, 'p1') #输入坐标点P1的x,y坐标及点的名字
p2 = point(1, 3, 'p2') #输入坐标点P2的x,y坐标及点的名字
p3 = point(9, 7, 'p3') #输入坐标点P3的x,y坐标及点的名字
p1.getd(p2) #计算点p1与p2的距离,也就是三角形的一条边
p2.getd(p3) #计算点p2与p3的距离,也就是三角形的一条边
p3.getd(p1) #计算点p3与p1的距离,也就是三角形的一条边
p1.whichtriangle(p2, p3) #任意2边的平方之和与第三边平方做比较,大于是锐角,等于是直角,小于是钝角
print() #输入结果之间加一个空行
except:
print("输入的值错误")

  

最新文章

  1. 浏览器加载和渲染HTML的过程(标准定义的过程以及现代浏览器的优化)
  2. linq group by max 多表链接实例
  3. Visual Studio 2015 速递(4)——高级特性之移动开发
  4. Android基础:Activity
  5. 使用U盘代替光盘来刻录ISO镜像文件的方法
  6. Hibernate-一级缓存session
  7. Linux CPU负载
  8. FlyCapture2 fc2Image OpenCV IplImage Conversion 两种图像格式之间的转换
  9. Hadoop MapReduce概念学习系列之mr的Shuffle(二十二)
  10. HTML行类元素与块级元素
  11. 使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0
  12. Android系统--输入系统(五)输入系统框架
  13. [LeetCode] Best Time to Buy and Sell Stock with Transaction Fee 买股票的最佳时间含交易费
  14. MySQL的Limit详解
  15. Android CheckBox修改大小、边框颜色,以及自定义CheckBox;
  16. Django的下载安装以及实现一个简单示例
  17. POJ 2942Knights of the Round Table(tarjan求点双+二分图染色)
  18. Html富文本编辑器
  19. 【Manacher算法】最长子回文串
  20. windows和linux文件输 - ftp

热门文章

  1. mybatis 数据搜索后参数显示乱码无法搜到
  2. uni-app初使用
  3. 【当年笔记】集合之Queue队列
  4. 处理uniapp激励广告
  5. WebSocket 使用记录
  6. 【36oj】 画圣诞树
  7. TIDB-DM数据迁移第三部(集群管理)
  8. openwrt 配置虚拟wan口
  9. IIS添加MIME类型实现未知文件下载
  10. 什么叫SSH?原理详解。