​ 定义代表二维坐标系上某个点的Point类(包括x、y两个属性),为该类提供一个方法用于计算两个Point之间的距离,再提供一个方法用于判断三个Point组成的三角形是钝角、锐角还是直角三角形

数学分析:

两点间距离公式:
d12=(x1−x2)2+(y1−y2)2d_{12} =\sqrt{(x_{1}-x_{2})^2+(y_{1}-y_{2})^2} d12​=(x1​−x2​)2+(y1​−y2​)2​
三角形的判定方法:{a,b,c}为三角形三边

① a + b <= c 或 a - b >= c 时,无法构成三角形;

② a2+b2<c2a^2+b^2<c^2a2+b2<c2 时,构成锐角三角形 ;

③ a2+b2=c2a^2+b^2=c^2a2+b2=c2 时,构成直角三角形 ;

④ a2+b2>c2a^2+b^2>c^2a2+b2>c2 时,构成钝角三角形 ;

代码分析:

利用两点间距离公式求出三条边,并通过三角形的判定方法进行判定并输出结果。

需要注意的是,三角形的定义是任意情况而非存在。所以需要对边进行处理才能保证适配性,不能直接带公式进行判断。

对三条边进行排序,得到下面非三角形情况:
①边min边_{min}边min​ + 边mid边_{mid}边mid​ < 边max边_{max}边max​

②边max边_{max}边max​ - 边min边_{min}边min​ > 边mid边_{mid}边mid​

分析完毕,代码实现如下:

class Points:def __init__(self,x,y):self.x = xself.y = ydef getDistance(self,other):    #两点之间距离公式return ((self.x - other.x) ** 2+(self.y - other.y) ** 2)**0.5def type_triangle(self,p2,p3):self_p2 = self.getDistance(p2)self_p3 = self.getDistance(p3)p2_p3 = p2.getDistance(p3)#对三条边进行排序,即可直接用三边定理排出非三角形情况if  self_p2 > self_p3:self_p2,self_p3 = self_p3,self_p2if  self_p3 > p2_p3:self_p3,p2_p3 = p2_p3,self_p3if  self_p2 + self_p3 <= p2_p3 or p2_p3 - self_p2 >=self_p3:return print("不是三角形")elif  self_p2 ** 2 + self_p3 ** 2 < p2_p3 ** 2:return print("锐角三角形")elif  self_p2 ** 2 + self_p3 ** 2 == p2_p3 ** 2:return print("直角三角形")elif  self_p2 ** 2 + self_p3 ** 2 > p2_p3 ** 2:return print("钝角三角形")
if __name__ == '__main__':pt1 = Points(2,3)pt2 = Points(4,5)pt3 = Points(0,0)dis12 = pt1.getDistance(pt2)dis13 = pt1.getDistance(pt3)dis23 = pt2.getDistance(pt3)print(dis12,dis13,dis23)pt1.type_triangle(pt2,pt3)

运行结果:

Python:给出三个点,判断三角形是钝角、锐角还是直角三角形相关推荐

  1. 根据三条边判断三角形类型

    题目描述: 输入三个边长a,b,c,判断能否构成三角形,三角形是什么类型. 解题思路: (1)输入三边长a,b,c: (2)三边长排序,从小到大a>b>c: (3)若a+b>c则能构 ...

  2. 输入三条边,判断三角形类型

    import java.util.Scanner;/*** 1.要求从控制台获取三角形三条边a, b, c的数据, 判断并输出该三角形的形状.* a)不是三角形 b)普通锐角三角形 c)普通直角三角形 ...

  3. 拼多多校招笔试题给出三个点构成三角形的个数

    题目描述 给出平面上的n个点,现在需要你求出,在这n个点里选3个点能构成一个三角形的方案有几种. 输入描述: 第一行包含一个正整数n,表示平面上有n个点(n <= 100) 第2行到第n + 1 ...

  4. python 等值线图_如何用Python绘出三值等值线图?

    如果可以生成要绘制任意比例轮廓的数据,则有一种解决方法.在这种情况下,您可以在网格上生成(x,y)数据,将它们映射到重心坐标,并计算z值.然后您可以使用非三元图,如轮廓或曲面.在 下面是一个绘制Dir ...

  5. C语言判断三角形类型

    根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型. 算法思想 首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积:否则不 ...

  6. java 判断三角形计算面积

    标题 三角形面积 问题描述 根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型.类型包括等边三角形,直角三角形,等腰三角形,普通三角形,非三角形. 题目要求 有输入和输出,输出格式中应包含结 ...

  7. C语言判断三角形类型并计算面积

    这里将介绍如何根据三角形的三条边判断三角形类型,并输出其类型与面积的方法. 算法思想 首先输入三条边的长度,先判断任意两边之和是否大于第三边,若小于,则不能构成三角形. 接着依次判断下列条件: 三角形 ...

  8. c语言判定三角形流程图_C语言判断三角形的类型

    根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型. 算法思想 首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积:否则不 ...

  9. 使用python编程语言编写程序:输入a、b、c三个数,判断a、b、c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是直角三角形,还是一般三角形。并计算周长和面积。

    使用python编程语言编写程序:输入a.b.c三个数,判断a.b.c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是直角三角形,还是一般三角形.并计算周长和面积. ​ ...

最新文章

  1. 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)
  2. 玩cf出现outofmemory_CF从女主播秀腿到假赛被罚,还能站在电竞上吗?
  3. Spark 架构原理介绍 以及 job、task、stag 概念
  4. 如何实现不安装xpoedinstall激活xposed模块
  5. 一文理清Http2.0
  6. gcc编译流程及中间表示层RTL的探索
  7. oracle 临时表空间的增删改查
  8. Python集合及运算
  9. 编译程序 解释程序
  10. Cannot assign to read only property 'exports' of object '#Object'
  11. 适用于IE浏览器及非IE浏览器的xmlhttp脚本
  12. ue4集合类型_UE4.22 Subsystem分析
  13. Android中Activity、Service和线程之间的通信
  14. Keras——imdb电影评论分类
  15. 你所不知道的精神分裂症
  16. Linux Apache FTP-Server架设
  17. weblogic漏洞总结复现
  18. slice,splice,substring,split
  19. 产业分析:股权激励市场实践
  20. Ceph中查找BUCKET INDEX所在位置的方法

热门文章

  1. javaweb基于JSP+Servlet房地产客户关系管理系统(CRM) 大作业 课程设计 毕业设计
  2. 第十九节 HTTP 协议
  3. 微笑2011/(^o^)/~
  4. Android倚天剑之Notification之江南style
  5. fatal: ‘main‘ does not appear to be a git repository fatal: Could not read from remote repository.
  6. 注册ActiveX的命令是:regsvr32”+空格+控件名称
  7. 2009最新经典爱情短信收藏
  8. 骚男的计算机音乐,在YY直播LOL的骚男经常放的音乐是什么
  9. 论语言好坏(纯属个人观点)
  10. glide scaletype 无效_[Android] Glide加载图片与ImageView的scaleType的关系