Python:给出三个点,判断三角形是钝角、锐角还是直角三角形
定义代表二维坐标系上某个点的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:给出三个点,判断三角形是钝角、锐角还是直角三角形相关推荐
- 根据三条边判断三角形类型
题目描述: 输入三个边长a,b,c,判断能否构成三角形,三角形是什么类型. 解题思路: (1)输入三边长a,b,c: (2)三边长排序,从小到大a>b>c: (3)若a+b>c则能构 ...
- 输入三条边,判断三角形类型
import java.util.Scanner;/*** 1.要求从控制台获取三角形三条边a, b, c的数据, 判断并输出该三角形的形状.* a)不是三角形 b)普通锐角三角形 c)普通直角三角形 ...
- 拼多多校招笔试题给出三个点构成三角形的个数
题目描述 给出平面上的n个点,现在需要你求出,在这n个点里选3个点能构成一个三角形的方案有几种. 输入描述: 第一行包含一个正整数n,表示平面上有n个点(n <= 100) 第2行到第n + 1 ...
- python 等值线图_如何用Python绘出三值等值线图?
如果可以生成要绘制任意比例轮廓的数据,则有一种解决方法.在这种情况下,您可以在网格上生成(x,y)数据,将它们映射到重心坐标,并计算z值.然后您可以使用非三元图,如轮廓或曲面.在 下面是一个绘制Dir ...
- C语言判断三角形类型
根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型. 算法思想 首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积:否则不 ...
- java 判断三角形计算面积
标题 三角形面积 问题描述 根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型.类型包括等边三角形,直角三角形,等腰三角形,普通三角形,非三角形. 题目要求 有输入和输出,输出格式中应包含结 ...
- C语言判断三角形类型并计算面积
这里将介绍如何根据三角形的三条边判断三角形类型,并输出其类型与面积的方法. 算法思想 首先输入三条边的长度,先判断任意两边之和是否大于第三边,若小于,则不能构成三角形. 接着依次判断下列条件: 三角形 ...
- c语言判定三角形流程图_C语言判断三角形的类型
根据输入的三角形的三条边判断三角形的类型,并输出其面积和类型. 算法思想 首先判断其两边之和是否大于第三边,若大于则判断可以构成三角形,再进一步判断该三角形是什么三角形,并计算这个三角形的面积:否则不 ...
- 使用python编程语言编写程序:输入a、b、c三个数,判断a、b、c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是直角三角形,还是一般三角形。并计算周长和面积。
使用python编程语言编写程序:输入a.b.c三个数,判断a.b.c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是直角三角形,还是一般三角形.并计算周长和面积. ...
最新文章
- 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)
- 玩cf出现outofmemory_CF从女主播秀腿到假赛被罚,还能站在电竞上吗?
- Spark 架构原理介绍 以及 job、task、stag 概念
- 如何实现不安装xpoedinstall激活xposed模块
- 一文理清Http2.0
- gcc编译流程及中间表示层RTL的探索
- oracle 临时表空间的增删改查
- Python集合及运算
- 编译程序 解释程序
- Cannot assign to read only property 'exports' of object '#Object'
- 适用于IE浏览器及非IE浏览器的xmlhttp脚本
- ue4集合类型_UE4.22 Subsystem分析
- Android中Activity、Service和线程之间的通信
- Keras——imdb电影评论分类
- 你所不知道的精神分裂症
- Linux Apache FTP-Server架设
- weblogic漏洞总结复现
- slice,splice,substring,split
- 产业分析:股权激励市场实践
- Ceph中查找BUCKET INDEX所在位置的方法
热门文章
- javaweb基于JSP+Servlet房地产客户关系管理系统(CRM) 大作业 课程设计 毕业设计
- 第十九节 HTTP 协议
- 微笑2011/(^o^)/~
- Android倚天剑之Notification之江南style
- fatal: ‘main‘ does not appear to be a git repository fatal: Could not read from remote repository.
- 注册ActiveX的命令是:regsvr32”+空格+控件名称
- 2009最新经典爱情短信收藏
- 骚男的计算机音乐,在YY直播LOL的骚男经常放的音乐是什么
- 论语言好坏(纯属个人观点)
- glide scaletype 无效_[Android] Glide加载图片与ImageView的scaleType的关系