我正在尝试创建一个计算简单四边形面积的计算器.
我知道每个四边形都可以分成两个三角形,无论如何我应该能够分成两部分来计算.
我能在数学中做到这一点,但我不知道如何将它实现到Python.
这是我的四边形课:
class Quadrilateral(Shape):
def __init__(self,name):
# in clockwise order: angles[0],sides[0],angles[1],sides[1],...
self.sides = [5] * 4
self.angles = [90] * 4
super().__init__(self,name)
现在我需要的是实现一个方法get_area()来计算我的四边形的面积,但我不知道如何.
这是我用纸和笔做的方法:
基本上我只需要知道两个角度和三个侧面就可以使用这种技术来计算面积,但我们不用担心.
现在,我知道所有角度和所有方面,我该如何计算面积?
最佳答案
只需在您拥有的两个列表中直接访问边和角度:
原文链接:https://www.f2er.com/python/439505.htmlimport math
area1 = 0.5 * self.sides[0] * self.sides[1] * math.sin(math.radians(self.angles[1]))
area2 = 0.5 * self.sides[2] * self.sides[3] * math.sin(math.radians(self.angles[3]))
area = area1 + area2
假设您的示例为sides = [3,5,4]和angles = [90,95,75,100],则该区域为:
>>> import math
>>> sides = [3,4]
>>> angles = [90,100]
>>> area1 = 0.5 * sides[0] * sides[1] * math.sin(math.radians(angles[1]))
>>> area2 = 0.5 * sides[2] * sides[3] * math.sin(math.radians(angles[3]))
>>> area1 + area2
17.31953776581017