C++ 中 n 边正多边形的边心距

server side programmingprogramming

n 边正多边形是 n 条边的封闭图形,其所有边和角的长度相等。下图显示了一个 6 条边的正多边形,通常称为六边形。

边心距是多边形中连接图形中心和边的一条线。并且它垂直于使其长度最小的一条边。

现在,让我们来计算它的长度。

n 边多边形的边所成的角度是 360/n

现在,如图所示,角度等于 (360 / n )/2 = 180 /n

现在取三角形,我们可以得出结论

tan ø = b/2 / h = b/2h
2h * tan ø = b
h = b/2*tanø , ø = 180 /n
h = b/2*tan(180/n)

让我们将其实现为一个程序,当给定多边形的边数和每边的长度时,找出边心距的长度。

公式

Given n = number of side , b = length of each side.
h = length of apothem,
h = b/2 * tan(180/n)

示例

#include<iostream>
#include <math.h>
using namespace std;
void apothemLength(int n, float a){
   if (a < 0 && n < 0)
      cout<<"invalid values";
   else
      cout<<"the length of apothem = "<< (a/(2*tan((180/n)*3.14159/180)));
}
int main(){
   float a = 12;
   int n = 9;
   apothemLength(n, a);
   return 0;
}

输出

the length of apothem = 16.4849

相关文章