已知半径,求n边正多边形的面积?


我们将学习如何计算已知半径的n边正多边形的面积。这里的半径是指从中心到任何一个顶点的距离。为了解决这个问题,我们从中心向一边作垂线。设每条边的长度为'a'。垂线将边分成两部分,每部分的长度为a/2。垂线和一条半径构成一个角度x。设半径的长度为h。

我们可以看到,多边形被分成N个相等的三角形。因此,任何N边多边形都被分成N个三角形。所以中心角为360°,被分成360°/N个不同的角(这里360°/6 = 60°)。所以角度x为180°/N。现在我们可以很容易地使用三角方程得到h和a。

现在整个多边形的面积是N*A。

示例

#include <iostream>
#include <cmath>
using namespace std;
float polygonArea(float r, int n){
   return ((r * r * n) * sin((360 / n) * 3.1415 / 180)) / 2; //convert
   angle to rad then calculate
}
int main() {
   float rad = 9.0f;
   int sides = 6;
   cout << "Polygon Area: " << polygonArea(rad, sides);
}

输出

Polygon Area: 210.44

更新于:2019年8月1日

219 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告