Forgot to add: In[379]:= PolyhedronData["Trapezohedron"] During evaluation of In[379]:= PolyhedronData::notdef: PolyhedronData has no value associated with the specified argument(s). >> Out[379]= PolyhedronData["Trapezohedron"] ---------- Forwarded message ---------- From: Bill Gosper <billgosper@gmail.com> Date: Fri, Aug 1, 2014 at 5:58 PM Subject: Re: [CASE:1301166] antiprisms To: Wolfram Technical Support <support@wolfram.com> Dear Xin Xiao, thank for your scandalous revelation that PolyhedronData is pure table-lookup. I had not imagined this limitation on, e.g., In[374]:= PolyhedronData["Prism"] Out[374]= {"Cube", {"Prism", 3}, {"Prism", 5}, {"Prism", 6}, {"Prism", 7}, {"Prism", 8}, {"Prism", 9}, {"Prism", 10}} Why not file a suggestion that those polyhedra which take an "argument" be implemented at run-time, free of arbitrary limits? If computing the general GraphicsComplex is too difficult, I can supply a simple g2gcomp converter ("Abnormal"?). --Bill Gosper On Fri, Aug 1, 2014 at 2:20 PM, Wolfram Technical Support < support@wolfram.com> wrote:
Hello Bill,
Thank you for your email.
The reason is that PolyhedronData is just fetching things that has already been built in Mathematica (which can be compared as looking a word in dictionary), PolyhedronData[{"Antiprism", n}] does not compute that particular antiprism depending on the value n. You can query what antiprisms are built-in by the command
PolyhedronData["Antiprism"]
I have filed a suggestion for n = 2 (the degenerated case).
Sincerely,
Xin Xiao
Wolfram Technical Support
------------------------------
On 2014-08-01, 03:23, Bill Gosper (billgosper@gmail.com) wrote:
In[366]:= PolyhedronData[{"Antiprism", 12}]
During evaluation of In[366]:= PolyhedronData::notdef: PolyhedronData has no value associated with the specified argument(s). >>
Out[366]= PolyhedronData[{"Antiprism", 12}]
GAA! How could you not implement the general case? E.g., antiprism[n_] := Block[{R = Table[{((Sqrt[Sin[(Pi/(2*n))]*Sin[((3*Pi)/(2*n))]])/(2*
Sin[Pi/n])), ((Csc[Pi/n]*Cos[((2*k*Pi)/n) + Pi/n])/ 2), ((Csc[Pi/n]*Sin[((2*k*Pi)/n) + Pi/n])/2)}, {k, n}], L = Table[{-((Sqrt[Sin[(Pi/(2*n))]*Sin[((3*Pi)/(2*n))]])/(2* Sin[Pi/n])), ((Csc[Pi/n]*Cos[((2*(k + 1)*Pi)/n)])/
2), ((Csc[Pi/n]*Sin[((2*(k + 1)*Pi)/n)])/2)}, {k, n}]}, Graphics3D[ Join @@ {{Polygon[L], Polygon[R]}, Table[Polygon[{L[[k]], R[[k]], R[[Mod[k, n] + 1]]}], {k, n}], Table[Polygon[{L[[k]], R[[Mod[k, n] + 1]],
L[[Mod[k, n] + 1]]}], {k, n}]}]]
(You'll want to change to a GraphicsComplex.)
The volume formula is
1/12 n (1 + 2 Cos[\[Pi]/n]) Csc[\[Pi]/n]^2 Sqrt[Sin[\[Pi]/(2 n)] Sin[(3 \[Pi])/(2 n)]]
In[367]:= PolyhedronData[{"Antiprism", 2}]
During evaluation of In[367]:= PolyhedronData::notdef: PolyhedronData has no value associated with the specified argument(s). >>
Out[367]= PolyhedronData[{"Antiprism", 2}]
GAAA!! This is the thinking that convinced the ancients that zero was not a number! Even Mathworld reluctantly admits it's a tetrahedron.
In[337]:= FullSimplify[Table[%%%, {n, {2, 3, 4, 5, 6, 8}}]] // ToRadicals
Out[337]= {1/(6 Sqrt[2]), Sqrt[2]/3, 1/3 (2^(1/4) + 2^(3/4)), 1/6 (5 + 2 Sqrt[5]), Sqrt[2 (1 + Sqrt[3])], (1/(3 (2 - Sqrt[2])))
4 (2 - Sqrt[2 + Sqrt[2]])^(1/4) (1 + Sqrt[2 + Sqrt[2]]) Sqrt[ Sqrt[2 - Sqrt[2 + Sqrt[2]]] + Sqrt[(2 + Sqrt[2]) (2 - Sqrt[2 + Sqrt[2]])]]}
(Note the pretty denesting in the square case.) --Bill Gosper