Off[Solve::ztest];
var = {R, r, a, p, s};
assume = Join[
Thread[var > 0],
{R > r, Element[n, Integers], n > 2}];
eqns = {
R == s*Csc[Pi/n]/2,
r == s*Cot[Pi/n]/2,
a == n*s^2*Cot[Pi/n]/4,
p == n*s};
sol = Reverse[Assuming[assume,
Simplify[Solve[
Join[eqns, assume], #, Reals][[1]] & /@
Select[
Subsets[var, {Length[var] - 1}],
MemberQ[#, a] &]]]] // FullSimplify;
Manipulate[
If[IntegerQ[m], v = m, v = 5];
pts = Table[{Cos[2 Pi*k/v], Sin[2 Pi*k/v]},
{k, 0, v}];
Column[{
Graphics[{
AbsoluteDashing[8],
Lighter[Gray, 0.4],
Circle[],
If[Not[m === Infinity],
{Circle[{0, 0}, Cos[Pi/v]],
Blue,
Line[{{0, 0}, #}] & /@ Take[pts, 2],
Text["R", {1/2, 1}*pts[[1]], {0, 2}],
Magenta, Text["\[Alpha]", Plus @@ Take[pts, 2]/7],
Text["\[Beta]", 6/7*pts[[3]]],
Darker[Green, .25],
AbsoluteDashing[4],
Line[{{0, 0}, Cos[Pi/v]
{Cos[5 Pi/v], Sin[5 Pi/v]}}],
Text["r", Cos[Pi/v]/2
{Cos[1.1*5 Pi/v], Sin[1.1*5 Pi/v]}]}],
Dashing[{}],
Black,
Thick,
If[m === Infinity,
{Circle[{0, 0}]},
Line[pts]]}],
Grid[
ReplacePart[arr = Transpose[
Join[
{Style[#, Darker[Blue]] & /@
{"circumradius",
"inradius", "area",
"perimeter", "edge length",
"central\nangle, \[Alpha]",
"interior\nangle, \[Beta]",
"interior\nangle sum"}},
tab = (TraditionalForm /@ Join[var,
{If[m === Infinity, 0,
Row[{2 Pi/n, " rad", ", i.e., ",
FunctionExpand[2 Pi/n/Degree] Degree}]]},
{If[m === Infinity, "\[Pi] rad, i.e., 180\[Degree]",
Row[{(n - 2) Pi/n, " rad", ", i.e., ",
FunctionExpand[(n - 2) Pi/n/Degree] Degree}]]},
{If[m === Infinity, "Indeterminate",
Row[{(n - 2) Pi, " rad", ", i.e., ",
FunctionExpand[(n - 2) Pi/Degree] Degree}]]}]) /.
If[m === Infinity,
Map[#[[1]] -> Limit[#[[-1]] /. s -> 2 R Pi/n,
n -> Infinity] &, sol, {2}],
sol]]],
Flatten[Table[{i, j} -> SpanFromLeft,
{i, If[m === Infinity, 5, 6], 8},
{j, 3, 5}]]],
Frame -> All,
Alignment -> {Center, Center}] /. n -> m},
Alignment -> Center],
{{m, "n", "number of edges"},
Join[{"n"}, Range[3, 20], {Infinity}],
ControlType -> SetterBar}]
