Finding the 5-trapezohedron height to width ratio for perfect midsphere

48 Views Asked by At

WolframAlpha shows an example image for a midsphere in a 5-trapezohedron.

Example from  WolframAlpha

The example image shows an 5-trapezohedron where the midsphere perfectly touches all 4 edges of each face.

However, the shape of the 5-trapezohedron can vary by changing the relation between the height and the (maximum) width, resulting in a more 'flat' or more 'elongated' shape.

So my question is:
What is the height to maximum width ratio for the 5-trapezohedron where the midsphere perfectly touches all 4 edges of each face?


Edit
Some images to illustrate 'height' and 'max width' dimensions.

The dimensions are not really relevant, as I'm looking at a ratio between height and width. But if it helps, consider the height to be 1.

enter image description here enter image description here enter image description here

1

There are 1 best solutions below

4
On BEST ANSWER

The following code builds a 5-trapezohedron with an arbitrary angle between the long edges and the $z$ axis (which is vertical). It then searches using Newton's method for the correct angle that will make the mid-sphere touch all edges perfectly. Some of the code (that is related to the plotting part) has been omitted for brevity.

Public Sub trapezahedron()
Dim e1(3), e2(3) As Double
Dim m(3) As Double
Dim v(3, 2), w(3, 2) As Double, u(2, 2) As Double
Dim th01 As Double, th02 As Double
Dim th, th1 As Double
Dim vers(5, 3) As Double
Dim v1(3) As Double
Dim n(3), n1(3), p0(3) As Double
Dim eqns(50, 6), fipoints(100, 3) As Double, facepoints(50, 10) As Integer
Dim areavec(50) As Double
Dim area As Double, volume As Double, cog(3) As Double
Dim sph_center(3) As Double
Dim q(3, 3), diag(3, 3), reigen(3, 3) As Double
Dim r0(3), bvec(3) As Double
Dim ctype As Integer

n1(3) = 1

th = p / 6

 ' Newton's iteration
For ic = 0 To 20


e1(1) = Sin(th)
e1(2) = 0
e1(3) = -Cos(th)

e2(1) = Sin(th) * Cos(2 * p / 5)
e2(2) = Sin(th) * Sin(2 * p / 5)
e2(3) = -Cos(th)

For i = 1 To 3
    m(i) = e1(i) + e2(i)
Next i

Call normalize1(m)

th1 = find_angle(e1, e2)

For i = 1 To 3
  v(i, 1) = e1(i)
  v(i, 2) = e2(i)
Next i

Call gram_schmidt1(3, 2, v, w, u)

For i = 1 To 3
  u1(i) = w(i, 1)
  u2(i) = w(i, 2)
Next i


Call initialize_rd
Call rd_xyz_1(1, 0, -72, 0)

Call calculate_xyz_(1, u1, u3)
Call calculate_xyz_(1, u2, u4)

c1 = dot(u1, u2) - dot(u2, u4)
c2 = dot(u1, u4) + dot(u2, u3)
c3 = dot(u1, u3) + dot(u2, u4)
c4 = -dot(u1, u4) - dot(u2, u3)

a = 2 * Sin(th1) - c3 * Sin(th1) - c4 * Cos(th1)
b = 2 * Cos(th1) - c3 * Cos(th1) + c4 * Sin(th1)
c = c1 * Cos(th1) + c2 * Sin(th1)

Call th_start_end_eq(a, b, c, th01, th02, ierr)

th01 = th01 - 2 * p * Int(th01 / (2 * p))
th02 = th02 - 2 * p * Int(th02 / (2 * p))

If th01 / 2 < p / 2 Then

   phi = th01 / 2

Else

   phi = th02 / 2

End If


For i = 1 To 3
  v1(i) = Cos(phi) * u1(i) + Sin(phi) * u2(i)
Next i

s = 10

For i = 1 To 3
  vers(1, i) = s * e1(i)
  u0(i) = 0
  u5(i) = s * e1(i)
Next i

x = s * Sin(phi) / Sin(phi - th1 / 2)

r1 = s * Sin(th)


For i = 1 To 3
  u10(i) = 0
  vers(2, i) = x * m(i)
Next i

u10(3) = -1

phi_m = find_angle(m, u10)

r2 = x * Sin(phi_m)


h0 = vers(2, 3)

z0 = h0 + 1 / 2 * (vers(1, 3) - h0)

For i = 1 To 3
  p0(i) = 0
  sph_center(i) = 0
Next i

p0(3) = z0
sph_center(3) = z0


For i = 1 To 3
  u1(i) = p0(i) - s * e1(i)
Next i

Call cross(p0, e1, u3)
Call cross(u1, v1, u4)

' function whose root we want
y = norm(u3, 3) - norm(u4, 3)
sph_radius = norm(u3, 3)

If Abs(y) < 0.00001 Then Exit For

If ic = 0 Then

  yprev = y
  dth = 0.1

Else

  yp = (y - yprev) / dth

  dth = -y / yp

  yprev = y

End If

th = th + dth

Next ic

Msgbox("Ratio = " + Str(-2 * z0 / (r1 + r2)))

End Sub

The 5-trapezohedron that I got is shown below including the intersection of the mid-sphere with the its slant faces. The ratio of the maximum height to the maximum width comes to $\approx 1.80907030050448 $.

enter image description here