1、已知正多边形边数、边长,求外接圆直径
#include <iostream>
using namespace std;
double returnDiam(int NumberEdges, double length_Edges)
{
const double PI = 3.1415926;
double a = 0;
double returnRad = 0;
if (NumberEdges == 0)
{
a = 2.0 * PI / 180.0 * 0.5;
returnRad = length_Edges / cos(a);
return fabs(2.0*returnRad);
}
else
{
a = 360.0 / NumberEdges *PI / 180.0 * 0.5;
returnRad = length_Edges / cos(a);
return fabs(returnRad);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
double b = returnDiam(16, 239.53);
cout << "returnDiam:" << b << endl;
system("pause");
return 0;
}
2、已知外接圆直径及内接多边形边数,返回多边形边到边距离
double returnToEdge(int NumberEdges, double Diam)
{
double a = 0;
if (NumberEdges == 0)
{
a = 2 * PI / 180.0 * 0.5;
}
a = 360.0 / NumberEdges*PI / 180.0 * 0.5;
double rad = Diam*0.5;
double lengthToEdge = 0;
lengthToEdge = rad*cos(a);
return fabs(2 * lengthToEdge);
}
3、已知外接圆直径,求多边形边长
double returnlength_Edges(int NumberEdges, double Diam)
{
if (NumberEdges != 0)
{
double a = 360.0 / NumberEdges*PI / 180.0 * 0.5;
double rad = Diam*0.5;
double length_Edges = 0;
length_Edges = rad*sin(a);
return fabs(2 * length_Edges);
}
else
return Diam;
}