## Hyperbolic polyhedron data?

Higher-dimensional geometry (previously "Polyshapes").

### Hyperbolic polyhedron data?

I've been thinking if there's a tool or an algorithm that could take an edge length (in spherical or hyperbolic geometry) and compute important data for a given uniform polyhedron with this edge length: its face data (angles of the polyhedra and their areas, possibly their in-radius and circumradius), dihedral angles of the polyhedron, volume of polyhedron, maybe in- and circum- radii of the polyhedron. It would be also great if it was possible to find faces and dihedral angles for horohedra/pseudohedra. It would help with finding how big the hyperbolic tesselations actually ARE.

These data are probably all accessible or computable, but what I need is a program or module that would combine them in one place...
Marek14
Pentonian

Posts: 1137
Joined: Sat Jul 16, 2005 6:40 pm

### Re: Hyperbolic polyhedron data?

If you suppose that you are taking say, a tD of edge E1 (or E1, E2), then this is well in the range of calculations, but there are some useful considerations to be made. Been doing this for years.

Horohedra and Bollohedra (aka pseudohedra), are simply polyhedra. It's not really easy to do it for 'uniform polyhedra', as I explained to Richard Klitzing. What you need is a construction, such as the stott-dynkin form. Professor Johnson makes an error when he supposes that the elements of a dynkin symbol are rational numbers: they are real numbers.

The dynkin - stott matrices works in all geometries, including euclidean geometry. But to make this happen, the proper scale to work in is euclidean chords (ie distances along chords), rather than 'straight lines' (ie measures of arc). This makes the curvature issue disappear, and the sizing of things then introduces curvature.

The spreadsheet i wrote for R Klitzing, is pretty much right on the nail on what is needed here, so i shall discuss this.

1. The most useful number of a polygon is its shortchord, p = 2 cos(pi/P). P = 2 acos(p/2). You find the dha = pi(1/2 - 1/P). We normally write this in terms of the square of p though.

2. The diameter2 of a polyhedron (P,Q) is d = 2(4-q)/(8-2p-2q) P,p here is 3,1 4,2, 5,2.618033, 5/2,0.381967 6,3 U,4

The diameter2 of a polygon (P) is 2(2)/(4-q).

3. It follows directly that the d2 of a polychoron is 2(8-2q-2r)/(16-4p-4q-4r+pr) &c.

The denominator is the 'schlafli determinate' of the polytope, and the d2 of a figure 2 * schlafli determinate of vertex figure / sd of polytope, the prism product gives a regular product, so eg o---o---x---o vf = o---o sd=3, and o sd = 2, pt = o---o---o---o = 5, so it's 2 * 3 * 2 / 5 = 12/5 = 2.4.

All of the above work with irrational polytopes, which is why i have W(x) as a general infinite polyhedron. when x=4 you get the horogon, or horosphere, when W(x) > 4 it's a bollogon.

Since one is generally in a tiling, not so interested in the radius of a polytope, but the edge in a sphere whose edge is 4, the point to note here is that E+4/R = 4.

A polyhedron like x5x3o of a given size, would imply some x5o3oWo, where the indiameters over the pentagons/decagons are identical, and this allows one to directly find W, and from this, the dihedral angles and assorted edge lengths associated with both of these figures.

Areas are found by the spherical excess theorm. I don't have a volume formula, though.
The dream you dream alone is only a dream
the dream we dream together is reality.

\(\LaTeX\ \) at https://greasyfork.org/en/users/188714-wendy-krieger wendy
Pentonian

Posts: 1912
Joined: Tue Jan 18, 2005 12:42 pm
Location: Brisbane, Australia

### Re: Hyperbolic polyhedron data?

This is the relevant code source for my script that does a lot of this. I compile the code from this, without the comments.

The numbers are given as choh2 of the distance usually given. This greatly simplifies the maths.

The star function calculates the edge of a star, given a figure that has the same core. In essence, we find some new figure with a face {p,q} whose inradius is identical to some {x,y,z}.

The Gauge rule is used to find the inradius of a surtope of a cell, given the circumradius of the same cell, and the inradius of the surtope.

Code: Select all
`!topic - sp, sm!src sp_smsp: procedure; parse arg t0; return 4*t0 / (4+t0)sm: procedure; parse arg t0; return 4*t0 / (4-t0)sr: procedure; parse arg t0; return 4 /(4-t0)vf: procedure; parse arg t0; return 4 - 4/t0!endThese pair of functions are used in the star function.    sr =  4/(4-vf)    4/sr = 4 - vf    vf = 4 - 4/sr!topic - star()!src starstar: ; procedure; parse arg s0,s1,s2if s0 = 0  then return sm(s1)/sm(s2);  else return sm(sp(s0)*sm(s1)/sm(s2))!end  star(edge,core,star) = edge(star)  star(e2(5,3,3,3),a2(5),a2(5/2))  =  e2(5/2,5,3,3)  star(e,p,P)=E  put  e2(p,q) = e     defines q       ie  e = -4*(4-p-q)/(4-q)  then e2(q,p) = e2(Q,P) = k           ie  k = -4*(4-p-q)/(4-p)!topic - klein (convert Eq to Kq)!src kleinklein: ; procedure; parse arg ee; return 4*ee*(4+ee)/(2+ee)**2!endPoincare was reverse engineered from a value in Dan Hatch/Melinda Green's'tyler' applet.  Don confirmed this is tanh, while E2 is choh.  Algebraconfirms the found relationship.Let op = poincare distance            h    ok = klein distance               |    rp = radius of line  = rh     r---k--p     o     circle centre r passing through h, p is poincare line.     line passing through h, k is matching klein line     op = poincare distance p     ok = klein distance k     rh = rp = radius of poincare line     oh = horizon-radius = 4.     rho , hko right angle triangles. then we have a right angle triangle 2:r:r+p, similar to k:?:2 ie k/2 = 2/(r+p).                                  since we have  ie k = 4/(r+p)                        pp = 4ee/(4+ee) = 4 - 16/(4+ee)                                         4 = 16+4ee / 4+ee  we also have                                         k     16+4ee * 2p / 16+8ee    4+rr = rr+2rp+pp                         2p  4+ee/4+2ee    ie pp+2pr-4 = 0                           p  (4+ee/2+ee)    ie   r = (4-pp)/2p         p = ( 2pp)/2p                  kk =  4ee    4+ee 4+ee       r+p = (4+pp)/2p                        4+ee   2+ee 2+ee         k =  8p/(4+pp)                                        kk =  4.ee(4+ee)/(2+ee)^2                                        kk = 4 ((ee+2)^2-4)/ (2+ee^2)                                        kk = 4 - 16/(2+ee)^2This came out of the discussion between John Conway, Anton Sherwood,and myself, over the klein and poincare projections being azimuthal,and hence transforms of r,theta to f(r),theta.  This means that allazimuthal projections cross the horizon at the same point.!topic h2k and k2h  [Guage rule]!srch2k: ; parse arg t0; return (t0+4)/4k2h: ; parse arg t0; return (t0-1)*4k2b: ; parse arg t0; return (t0-1)*4/t0b2k: ; parse arg t0; return 4/(4-t0)h2b: ; parse arg t0; return 4*t0/(4+t0)b2h: ; parse arg t0; return 4*t0/(4-t0)!end   h = height   = edge {4,k}   k = stretch  = h/b   b = base     = edge {k,4}The euclidean distance of two points on a bollosphere is k times theE distance on the equidistant plane.  h = distance between bollospheres of equal curvature.  b = projection of h on the bollosphere, as measured on the plane  k = h/b = expansionWe note that e2 of {p,q} = 4q/(4-p) - 4 = (4p+4q-16)/(4-q)   This gives for  {4,p}   (4p-8)/(4-p) = h                   {p,4}   (4p-8)/(2) = h/k = b                           2/(4-p)    =   k  or  p = 4-2/k    Given p, we can find  h = (16-8/k - 8) / (2/k) or 4(k-1)       or 4 + h = 4k.   k = (4+h)/4;  h = (k-1)/4We now make further functions, using b as above.    k2b is k2h / k, ie  b = (k-1)/4k    bk = 4k - 4; (4-b)k = 4, k = 4/(4-b).To relate b to h, we note that h = kb, where k = (h+4)/4   ie  h = (h+4)b/4; b = 4h/(4+h)       4b+hb = 4h ;  h(4-b) = 4b; h = 4b/(4-b)!topic - tube!src tube   /* calculate the height of a tube */tube: procedure; parse arg t0, t1, t2if t0 = 0  then return t1-t2 ; else return 4*t0*(t1-t2)/(t0*t2+4)!rem rha: ; parse arg t1, t2; return (t1+2)*(t2+2)/2-2rha: procedure; t1 = arg(1)+2; do nn = 2 to arg(); t1 = t1 * (arg(nn)+2)/2; end; return t1 - 2!end                  Given D2 of sphere passing through the four points o      o---+---o   and given D2 of the circle passing through the top      (   |   )   two 'o', find the distance between the top and bottom.      (   |   )      (   |   )   Since the tube-rule is mainly used to find the surtope      o---+---o   radius in H space, we make the sphere t0.t1 and the                  circle t0.t2For example, the R2 of a {3,5,3} cell is tube(e2(3,5,3),d2(3,5),d2(3))Tube Rule: midheight2 of tube diam2 t inside a sphere diam2 D   (4+t)(4+m)=4(4+D)      t = diameter of tube ; D = circumdiameter of tube segment      m = mid height; h = height at edge   ------------------------------------------------------------------   h+t=D; 4h/m = 4+t; 4h = (4+t)m; 4h + 4t + 16 = (4+t)(4+m) = 4(4+D)   * used to find heights of cells in honeycombs: D=cell, t=margin.   # tube(e,D,t) finds m = 4(4+eD)/(4+et)-4 by 4e(D-t)/(4+et)The right-angle rule derives from taing the half-distances of the tuberule.  The function is generalised to cover all sorts of values.Right Angle Rule:  a,b are short sides, c is the long side   (2+a)(2+b)=2(2+c)   ------------------------------------------------------------------   put aa=t, bb=h, cc=D true lengths of tube rule measures   so (x+2)^2 = 4+xx;  take sqrt of tube rule =  (2+a)(2+b)=2(2+c)!topic - a1_a2!src a1_a2a1: procedure expose setpi;  parse arg t0t1 = sin(pi(1/t0)) ; return 2*sqrt(1-t1*t1)a2: procedure expose setpi ; parse arg t0t1 = sin(pi(1/t0)) ; return 4-4*t1*t1!endShort-chords  A1 is base of isoceles triangle formed by 2 sides  A2 is square of A1.!topic - c1_c2!src c1_c2C1: ; parse arg t0, t1, t4if t1 = '' then do; t2 = chord2; t1 = chord1; end else do; t2 = sin(pi(1/t1)); chord1 = t1; chord2 = t2; endt3 = sin(pi(t0/t1))/t2 ; if t4 = "" then t3 = t3; else t3 = pow(t3,t4)return t3c2: ; parse arg t0, t1 ; t2 = c1(t0, t1); return t2*t2!end   C1(n,m) is chord of polygon, where 1 = C1(1,m)     fractions follow the circumsphere of the polygons   C1(n) uses previous value of m   C1(n,m,p) = C1(n,m) ^ p   C2(n,m) = C1(n,m,2)!topic - ij!src ijij: procedure ; parse arg x ; if x > 0 then return (sqrt(x+2)+sqrt(x-2))/2 else return (sqrt(-x+2)-sqrt(-x-2))/2ji: procedure; parse arg x ; x = x*x ; if x < 1 then return -x-1/x else return x+1/x!endij(n) is the isounit corresponding to (n).  ij(3) = 1.61803398875   ji(1.61803398875) = 3  ij(-3) = 1/ij(3).  in(n) is usually written jn, eg j3 or j66ji undoes ij!srce2h: procedure ; parse arg x; return (x+2+sqrt((x+4)*x))/2h2e: procedure ; parse arg x; return x-2+1/x!endJohn Conway mentioned a hyperbolic distance that can be multiplied togive progression along the straight line.  This is the cish function.As with cis, this function is the exponent of angle, and distancesmultiply.This is a useful function, and the relation between cish and choh issoon found, to be the e2h() and h2e() functions given above.The formula  (x+2+sqrt(x2+4x))/2 converts euclidean to hyperdistance              x-2+1/x converts hyperdistance to horodistance   h2 = e2h(e2)    e2 = h2e(h2)Don Hatch's tyler uses a "unit of curvature" uc.  This is the radialfraction of the poincare disk.  We normalise this to t1 = 2*uc andt2 = t1*t1   t2 = sp(e2)      e2 = sm(t2)!topic - fact()!src factorialfact: procedure; parse arg t0, t1, t2; if t1='' then t1 = 1; if t2 = '' then t2 = 1;t0 = abs(trunc(t0)); t9 = 1do forever; if t2 > t0 then leave; t9 = t9 * t0; t0 = t0 - t1; end; return t9ppi: procedure expose setpi; parse arg t0, t1; t0 = abs(trunc(t0)); if t1='' then t1=1t3 = pi(1/2)**(t0 % 2) * t1 ** t0 ; return t3!end Factorial  n = 1*2*3*...!topic - borr()!src borrborr:; parse arg b1; b1 = a2(b1); return (b1+sqrt(b1*(16-3*b1)))/2!endThe borromeachrons are hyperbolic tilings with a vertex figure as a snubtetrahedron 3/q*/p2%.  The cell conist is p-gonal prisms and cubes.Edge of polyborromeachorons   E2 = A2/2 + A1.sqrt(16-3A2)/2   -----------------------------------   The notional coordinate is (a,x,0), all chs, even perm.  The triangle   (a,x,0) - (0,a,x) - (x,0,a) is of edge 2r2 [being the vf of a cube],   so  (a, x-a, -x) = 8, or aa+xx+aa+xx-2ax = 8; ie aa+xx-ax = 4, or   xx - ax + (aa-4) = 0.  This makes x = a+sqrt(aa-4(aa-4));/2, ie   x = a/2 + sqrt(16-3a2)/2.  aa+xx-4 is therefore aa+aa/4+16/4-3aa/4-4   +a1.sqrt(16-3a2)/2 = aa/2+a1.sqrt(16-3a2)/2.The only uniform polyborromeateron is {4,3,3,5}`
The dream you dream alone is only a dream
the dream we dream together is reality.

\(\LaTeX\ \) at https://greasyfork.org/en/users/188714-wendy-krieger wendy
Pentonian

Posts: 1912
Joined: Tue Jan 18, 2005 12:42 pm
Location: Brisbane, Australia 