我正在尝试创建一个计算简单四边形面积的计算器.我知道每个四边形都可以分成两个三角形,无论如何我应该能够分成两部分来计算.我能在数学中做到这一点,但我不知道如何将它实现到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)
Run Code Online (Sandbox Code Playgroud)
现在我需要的是实现一个get_area()计算四边形面积的方法,但我不知道如何.
这是我用纸和笔做的方法:

基本上我只需要知道两个角度和三个侧面就可以使用这种技术来计算面积,但我们不用担心.现在,我知道所有角度和所有方面,我该如何计算面积?
只需直接在您拥有的两个列表中访问边和角:
import 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
Run Code Online (Sandbox Code Playgroud)
鉴于您的示例为sides = [3, 5, 5, 4]和angles = [90, 95, 75, 100],则面积为:
>>> import math
>>> sides = [3, 5, 5, 4]
>>> angles = [90, 95, 75, 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
Run Code Online (Sandbox Code Playgroud)