python – 计算四边形的面积

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

这是我用纸和笔做的方法

基本上我只需要知道两个角度和三个侧面就可以使用这种技术来计算面积,但我们不用担心.
现在,我知道所有角度和所有方面,我该如何计算面积?

最佳答案
只需在您拥有的两个列表中直接访问边和角度:

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

假设您的示例为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

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...