输入三角形的两边和夹角 python,python已知三角形两边和夹角求第三边
三角形是个好东西。比如知道三条边的长度,就可以判断是否能形成三角形(两条边之和大于第三条边)。如果可以,可以进一步算出它的面积(海伦公式)。最后可以画出这个三角形(用余弦定理求角)。所以以此作为编程题目进行教学比较好。
jupyterlab中的运行效果如下:
Python源代码如下:
#% matplotlib online #建议在jupyterlab中运行import math import numpy as NP import matplotlib . py plot as PLT def judge(lines)。判断是否能形成三角形 flag=0 for I in range(3):L1=lines . copy()#如果要复制,或者将修改源r=l1.pop(i) # r取出剩下的两个if(r=sum(L1)):print(输入边长不能形成三角形)break else:flag=1 continue if flag==3:return true else:return false def plot _ triangle():lines=input(输入三条边用空格隔开:)params=lines . split()lines=list(map(lambda x:float(x),params))if judge(lines):p=sum(lines)/2a,b, C=lines area=math . sqrt(p *(p-a)*(p-b)*(p-C))width=max(lines)height=area/width * 2 #计算角度lines=[a,b,C]idx _ a=NP . arg max(lines)a=lines . pop(idx _ a)#最长边为底边长度,最左边与坐标轴b的原点对齐, C=lines #计算两个水平角的夹角cos _ c=(a * * 2b * * 2-c * * 2)/(2 * a * b)cos _ b=(a * * 2c * * 2-b * * 2)/(2 * a * c)#根据余弦。 k _ B=math . tan(math . acos(cos _ B))#根据切线和高度,得到边长w_C=height/k_C w_B=height/k_B #确定三个顶点的坐标loc _ a=(0,height)loc _ B=(-w 0)PLT . fig(figsize=(4,3)) plt.plot([0,-w_B,w_C,0],[height,0,0,height], gray) plt.plot([0,/) Dpi=300) print(三角形面积为:% . 4f %(area))if _ _ name _= _ _ main _ _ :plot _ triangle()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。