We can generate 3D clusters in a similar way to the previous post, but using a hyperbolic regular polyhedron tiling instead of a hyperbolic regular polygon tiling. We can continue to use this 2D diagram as a guide:
We define the outer green circle as radius 1, and the offset green circle l2 has its centre at a distance L=sqrt(1+R^2) where R is the solution to:
R/theta = sqrt(1+R^2)/sin(pi/2 + pi/m)
where theta is the angle from the polyhedron centre to the nearest face edge and m is the number of polyhedrons that meet at each edge. There are two good polyhedrons to use here, the dodecahedron and the icosahedron, their values and resulting formula are:
Dodecahedron:
- theta = atan2(phi+2, 2phi + 2 + 1/phi)
- m = 4
- R = sqrt(2)/sqrt(-2 + cosec^2(theta))
- theta = atan2(phi, 1+2phi)
- m = 3
- R = 2/sqrt(-4 + cosec^2(theta))
- rotate the point to a be radially in one single polyhedron face*
- if it is inside l2 you invert it around l2
- if its magnitude is less than rk (plus a skin width) then divide by rk and then invert around l4 = sqrt(r), sending the red sphere to the outer green unit sphere
- once you are out of iterations return the distance to the centre sphere rk, multiplier by a scale factor that is initialised to 1 and grows in proportion to all transformations of p in the above steps
Here is the result for the dodecahedral cluster, with k values from 0.7 up to 1:
and k=0.8:
and k=0.1:
For the icosahedral cluster, here are k values of 0.7 up to 1:
Both the decahedral and the icosahedral become cluster-sponges at k=1, and are very spikey and visually less rough. We can make the shape less spikey at higher k by alternating between the dodecahedral and the icosahedral clusters. Since they are duals of each other, we should expect that to do the opposite of lining up subclusters.
There are two versions depending on which shape you start with. Here starting with the dodecahedral with k from 0.8 up to 1:
So here is the icosahedral fractal for k=1 and k=1.3:
No comments:
Post a Comment