Hi,PEC. That’s great! Your method is feasible. I’m looking forward to seeing your video about how to make a soccer.
Hi
@TigerMike : I’m afraid I can’t give you the exact length of the hex leg
@Xiamen0592 : happy to explain
Long story short: there is a mathematical demonstration that proves it is impossible to tile a sphere with uniform regular hexagon tiles.
Everything we model in shaper3D complies with Euler’s rule that states: for any solid body, the sum of the faces plus the sum of the vertices minus the sum of the edges equals 2
F + V - E = 2. (with F: number of faces, V: number of vertices, E: number of edges)
If we look at a cube, it has 6 faces, 8 vertices and 12 edges, and 6 + 8 - 12 = 2, as stated by Euler.
Now, if we try to create a body only with n hexagons, let’s see if it’s compliant with Euler’s law:
- number of hexagon = n, so F=n
- every hexagon has 6 vertices, but every vertices is shared by 3 hexagons, so V = n*6/3
- every hexagon has 6 legs that creates a edge, but each edge is shared by 2 hexagons, so E=n*6/2
Now, simply calculating F+V-E = n + n * 6/3 - n * 6/2 = n * (6+12-18)/6 = 0
The result is equal to 0, this is a violation of Euler’s law that states it must be equal to 2.
So, it is not possible to create a manifold body (means a body you can print on your 3D’s printer) using only hexagon.
A very clever demonstration proves that it is possible to tile a sphere if you use a mix of hexagon and pentagon and proves a non intuitive result: if you mix hexagon and pentagon, then, there is always exactly 12 pentagons on the body, regardless the number of hexagons.
So, now we know why soccers are made of 12 black pentagons and 20 white hexagons (well, we don’t know yet why 20 hexagons ).
If we also want a very regular distribution, with each hexagon connected exactly to 3 hexagons and 3 pentagons, or equivalent condition, each pentagon is connected exactly to 5 hexagons, then there is only one answer : 20 hexagons. (Every pentagon, in combination with 2 neighbors’ pentagons creates 1 hexagon, but each hexagon is created 3 times, and every pentagon has 5 neighbors, so number of hexagons = (12 * 5) / 3 = 20).
Next step is to figure out how to create the arrangement of hexagons and pentagons.
If we start with a first hexagon, to create the neighbor’s hexagon, we simply have to rotate along the sewing but of the exact angle, as this rotation will also define one angle of the adjacent’s pentagons.
I will try to explain that in my next post.
Outstanding reply @PEC! You’re a very patient, and knowledgeable person to spend the time, and share this reply! Kudos for you!
Wow! Thank you very much for your patient answer. It’s amazing! I believe that many people can’t wait to see your next article and video demonstration as much as I do.
Hey @PEC. Excellent analysis.
All this is a bit beyond me however here is some food for thought.
Note that when the hexagons are connected as in the soccer ball, the pentagons are auto created. Can they be considered empty areas with respect to the hexagons? Just wondering.
Another point is with hexagon leg length. I have no idea how one could use either the arc length or the true length as if the hexagon is flat (as in 2nd video).
In my example the arc length = 3.8984 and the true length = 3.8728.
Thanks for your comments
@TigerMike : yes, you are right, the pentagon are auto created when you create the hexagons of the right size at the right angle.
If we copy rotate 4 times the hexagon exactly by 138.19°, we create a perfect pentagon, as in the video.
Explanation is a bit long and you need to read the rest of this post only if you really want to know how the 138.19° jumped out in the discussion.
The figure below represents a first hexagon (blue one, number 1) in the (Ox, Oz) plane, with one vertex located at the origin (coordinates (0,0,0)) and one edge being vertical. A is a second vertex of the hexagon. To ease calculation, let’s say OA = 1. (length of [OA] segment is unity).
The angle between 2 edges of an hexagon is 120°.
You can draw the hexagon as the sum of a rectangle and two triangles, sum of angles of a triangle = 180°, sum of the angles of a rectangle = 360°, so sum of angles of a hexagon is 2 * 180 + 360 = 720°, divided by 6 edges => 720 / 6 = 120.
Because of the 120° for an hexagon and the way we placed the hexagon on the plane, the angle between (OA) and (Ox) is 30°. So we can compute the coordinates of A:
Now, we copy rotate the blue hexagon around the (Oz) axis by an angle of value = alpha, which is the “magic” angle that we need to determine. It creates the green (number 2) hexagon, and the A points creates the B points.
We can now compute the coordinates of B:
And replacing Xa, Ya, Za by their values gives:
But the 3 points 0, A, B are also part of the adjacent pentagon, so the angle (AOB) must be 108°.
The angle between to edges of a pentagon is 108°, because you can draw the pentagon as the sum of 3 triangles, so total angle is 3 * 180, to be divided by 5 edges, so 3 * 180 / 5 = 108.
So we have two vectors, OA and OB, we know their coordinates and we know the angle we need to impose between them. So, we can now use vectorial product, which relates the coordinates and the cosinus of the angle between the two vectors:
and as we chose OA = 1, we also have OB = 1 because B is the image of A by a rotation, and rotation is an isometry, so it doesn’t change the length. So the denominator is equal to 1.
Vectorial product is simply the sum Xa * Xb + Ya * Yb + Za * Zb
So the equation becomes:
cos(30°) * cos(30°) * cos(alpha) + 0 * cos(30°) * sin(alpha) + sin(30°) * sin(30°) = cos(108°)
which simplifies in:
and finally, we use the reciprocal of cosinus to get the angle:
… and the result is alpha = 138.19°.
So, if we rotate the first hexagon by exactly 138.19° around the Z axis, as in the video, it will start creating exactly the corresponding edge of the associated pentagon.
The complementary angle is 180° - 138.19° = 41.81° and half of this angle is 20.905°, which I will use to create the soccer.
@PEC, great info!
The math is way beyond me and your hex sketch animation says it all. So, the size of the hex determines the size of the ball. After creation, one can scale it larger or smaller as needed.
I got lucky with my first video where I projected lines on the sphere. I used plus and minus 20° to create opposite sides of my hexagon. If I used plus and minus 20.905° I should be able make it work. I’ll give it a try. Thanks again for your in-depth summary. Kudos to you!
Turns out, the size of the sphere determines the size of the projected sketch. Here I’m very close but there is a small error on the last hex which could have been my fault.
Side note: with sketches you use Trim to remove the ends of overlapping lines. In order for me trim the overlapping lines on the projection, I had to use Delete. After creating one hexagon projection, I projected it back on the plane. From there after an initial rotation of +20.905°, I’m able to do a series of rotations of 41.81° and 60°.
Now, it’s time to create the soccer.
The basic idea is to create an intermediate shape using hexagons rotated the right angle.
But, instead of using rotation, I prefer using mirroring, so I create the first shape with half the angle (20.905°), so when I will mirror, it will be equivalent of the 41.81° rotation.
Note also that I double the width of 3 sides of the first shape to get ultimately an even width, because 3 sides of the shape are mirrored side by side and 3 sides are let alone.
Then, subtract this shape to a sphere (so it does not suffer from projection’s distorsion) and add a slightly smaller sphere in order to set the heigh of the facets, and that’s it.
As always, it is way longer to figure out how to do it than the actual process itself, when you know what to do. I learnt a few things doing that, one of them being the reason of the 12 pentagons on a soccer.
Wow. Just wow. Thank you for sharing.
Well done! Fabulous!
Wow! Thank you very much for your wonderful presentation and sharing! Unbelievable! That’s great!
Thanks for your comments, it was a very interesting subject for the first anniversary of my first post on this forum .
Here is a variant of the method, which directly creates the facets and allows for a more realistic result.
Excellent variant. Nicely done!
Hi
@TigerMike I think we didn’t granted your method the attention it deserves.
In fact, I think it is the best method to project the hexagon on a sphere.
Projecting each edge of the hexagon on the sphere and then project back the edges on the sketch does the math for free.
Actually, we want the “hexagone” on the sphere to be composed of 6 arcs of circle, centered to the center of the sphere, same radius as the sphere. To do that, the sketch must not be a perfect hexagon but also composed of 6 arcs of circle of the right radius and the right position. It’s exactly what happens when you project back from the sphere on the sketch.
If you really want to draw the sketch directly to scale, it is possible.
As we are doing rotations of 41.81° exactly, there is a factor equals to sin(20.905°)=0.3568 involved in the dimensions.
Let’s say we have a sphere of 10mm radius.
Then, the “hexagon” is composed of 6 arc of circles, at 60° around the center:
- arc of circle’s radius is 10/0.3568 = 28.025mm
- top of the arc is located at a distance 10*0.3568 = 3.568mm from the center
- 60° portion of the arc (+/- 30°)
The video shows it for a 10mm radius sphere.
@PEC, thank you for the kind words.
Once again, I’m totally impressed with your in-depth analysis. Great work!
-Mike
I noticed you set an angle of 20.9050° which is pretty close.
I normally set an angle of 20.9052 which almost completely aligns the last two bodies to create a pentagon with an error of just .0002° between the last two angles.
Edit:
Great Math btw but probably a little too complicated for the common man (such as myself).
I arrived at 20.9052° with trial and error and it is the closest I could get.
20.9051 left a larger gap while 20.9053° created a slight overlap.
Hi,
@welshsteve you are right, I used rounded values. More precise values below if it can help. 20.9052 is the correct rounding if you want to add a digit.
alpha = 138.1896851°
beta = 41.81031490°
beta/2 = 20.90515745°
gamma = 0.3568220898°
Here is my final rendering, with stitches for more realism and a shapr3D logo because it was all done with Shapr3D and because I love the app
Excellent job on the stitches. Good choice for the textured surface.
Want to elaborate on how you did the stitches?
Thanks, Mike
Hi Mike,
I created them with the first body before the mirroring duplication. I spent some time wondering how to do it in an efficient way, as there are quite a number of them.