欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

任意三角形形状判断|Python练习系列[10]

程序员文章站 2022-04-02 10:04:18
...

代码演示视频

完整代码和注释如下

class point(object):#定义平面点类
	"""docstring for 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('The distance of ({},{}) and ({},{}) is {} '.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 'can'
		else:
			return 'can not'
	def getresult(self,p2,p3):#获取能否形成三角形的结果
		result=self.istriangle(p2,p3)
		print('Points:',self.name,p2.name,p3.name,result,'form a triangle')
	def whichtriangle(self,p2,p3):#判断是哪种三角形
		result=self.istriangle(p2,p3)
		if result=='can not':
			return print('Points:',self.name,p2.name,p3.name,result,'form a triangle')
		if self.l_list[0]**2+self.l_list[1]**2>self.l_list[2]**2:#锐角
			print('Points:',self.name,p2.name,p3.name,result,'form a acute triangle')
		elif self.l_list[0]**2+self.l_list[1]**2==self.l_list[2]**2:#直角
			print('Points:',self.name,p2.name,p3.name,result,'form a right triangle')
		elif self.l_list[0]**2+self.l_list[1]**2<self.l_list[2]**2:#钝角
			print('Points:',self.name,p2.name,p3.name,result,'form a obtuse triangle')
#测试
p1=point(12,-5,'p1')
p2=point(16,18,'p2')
p3=point(9,7,'p3')
p1.getd(p2)
p1.getresult(p2,p3)
p1.whichtriangle(p2,p3)
print()

p5=point(0,3,'p5')
p6=point(4,0,'p6')
p7=point(0,0,'p7')
p5.getd(p6)
p5.whichtriangle(p6,p7)
print()

p8=point(10,3,'p8')
p9=point(4,3,'p9')
p10=point(-9,0,'p10')
p8.getd(p9)
p8.whichtriangle(p9,p10)

相关标签: Python Exercise