# Geometry : Faces configuration around a vertex in 3D space

*Created on August 8, 2022. Last update on May 25, 2023.*

## TL;DR

If you are looking for the viewers: here is the 2D viewer and here is the 3D viewer

## Introduction

At last, here comes the follow-up on the article about Possible polygonal arrangements around a vertex. I encourage you to read it first. As promised in the last paragraph, we will now talk about dihedral and solid angles but before tackling the issue in 3D euclidian space, there is an equivalent problem in 2D that must be presented and solved.

As a reminder, here is the question that we want to answer in the first place : what are the possible configurations of regular convex faces that one can put around a vertex so that there is no gap between faces. As an example, take any solid with regular faces from here, consider a vertex and look at the faces around it : what are the valence of these faces ? in what order are they ? what are the (dihedral) angles between consecutive faces ? Answering these questions is studying the configuration of faces around this vertex. Not all configurations are possible, there is a relation, a constraint between the sequence of faces and the dihedral angles that I will try to bring up and explore through this article. For instance, five equilateral triangles lying flat do not close, there is a gap and we don't want this gap.

## Equivalent problem in 2D

If you remember, in the previous article, the constraint for the configuration of faces around of vertex was that the defect angle was larger or equal than zero but never strictly negative. We wanted this gap (it could be equal to zero) and we excluded face overlapping. Now the constraint is for the sequence of faces to have no gap, to form a closed loop.

Whatever your level of maths, I am quite certain that you have already been told about the triangle inequality. That's one of the first thing you learn in geometry. A triangle is made of three segments, each of these segments has a length which is the distance between the segment ends. The question is : if I give you the lengths of 3 segments, can you tell me whether a triangle can be constructed out of these segments or not ? The answer is the so called triangle inequality : the length of the largest segment must be smaller than the sum of the length of the other two segments. If a,b,c are the lengths of the segments with a ≥ b and a ≥ c (a is the largest length) then we must have a ≤ b+c for the triangle to exist. Of course, we already have b ≤ a+c and c ≤ b+a since a is the longest segment. When a=b+c, the triangle is reduced to a set of colinear segments, has zero area, and is called degenerate.

Have you ever wondered in what form this inequality exists for polygons other that triangles ? Probably not. By the way, a parallel question is : given a polygon with N vertices (and N segments), what are the least pieces of information necessary to build it ? For a triangle, you would need to know either the length of its three segments, or the length of two segments and a angle. For a quadrilateral, you would need the lengths of three segments and two angles. For any polygon, you would need the length of N-1 segments and N-2 angles: 2*N-3 pieces of information which is also the degree of freedom of the polygon.

To simplify the problem a bit, let's assume that the lengths of the segments are always one. Now, for a triangle, only one configuration exists which is the equilateral triangle. For a quadrilateral, one forms a rhombus which shape is constrained by only one angle that belongs to [0, 2Π[, meaning that any angle is valid since an angle is expressed modulo 2Π. So it seems that for a polygon, only N-3 angles are necessary. This is slightly incorrect though. With this much information, starting from an horizontal segment for instance, let's draw the first N-2 segments or stated alternatively, let's draw vertices 0 to N-2, only vertex N-1 is left. To find its position, let's draw the circles of unit length centered on vertex 0 and vertex N-1. These two circles intersects at two different positions and produces two different polygons with unit lengths and the same N-3 angles. The last three angles are completely constrained by the N-3 first angles and the choice of the intersection point for vertex N-1.

At this point, I should come back on my statement on the equilateral triangle and the rhombus. For the equilateral triangle, once the first (horizontal) segment is drawn and the two circles traced, there are indeed two points of intersection but the two lead to the same equilateral triangle (if you ignore rotation as you should), one pointing upwards and one pointing downwards. For the rhombus, the alternative shape has its vertex 3 (N-1) at the same position as vertex 1, it is a degenerate quadrilateral with zero area that looks like only two segments.

For the moment, we have assumed that the polygon could be formed and we studied its degrees of freedom but we
never talked about the constraint on its existence in the first place. Actually, we talked about it subtly, it has
to do with the circles intersections.
What would happen if given a list of N-3 angles, the centers (V_{0} and V_{N-2}) of these unit
circles were too far apart ?
There would be no intersection point to position the last vertex V_{N-1} and the polygon could not be
closed with segments of unit length.
Here comes the triangle inequality again on triangle (V_{0} , V_{N-2}, V_{N-1}), two of
its lengths are 1 per definition and the remaining one must be smaller that 1+1=2.
The final answer is that the polygon exists if and only if the distance between vertex 0 and vertex N-2 is smaller
than 2 (i.e. its inside the circle of length 2 centered on V_{0}).

Let's generalize this finding. In practice, we set the position of V_{0} at the origin and we compute the
position of V_{N-2} as a series of consecutive translations and rotations given by the first N-2 edge
lengths and the first N-3 angles between those edges. Then, we can check than the distance
V_{0}V_{N-2} is smaller than the sum D
of the lengths of segment V_{0}V_{N-1} and segment V_{N-1}V_{N-2}.
This is the same as checking where point V_{N-2} lies with respect to the circle centered at V_{0}
with radius D.

I may not have mentioned it before but the resulting polygon may self intersect.

For the purpose of illustration, I have written an interactive app in the case where the segments are unit lengths. Please have a look, you can set the number of segments of the polygon, set the value of the angles as well as the choice of the intersection point with the "Flip" checkbox. The value of the remaining angles as well as the polygon area are then computed uniquely if they exist.

solution to a 2nd degree equation ?

## Dihedral and solid angles in 3D space

How does what was demonstrated on this 2D problem may help for the 3D problem ? We are coming to it but we first need to define angles in 3D.

The dihedral angle is the angle between two adjacent faces. Stated differently, let's take a point in the plane defined by the first face, I can rotate this point around the edge that join the faces (or the line that subtends this edge) so that it falls onto the plane defined by the second face. The dihedral angle is the angle of this rotation. A third way to see it is by considering the normals of the faces. The angle between these two vectors can be computed using the dot and cross product. The dihedral angle is Π minus the angle between the normals. As an example when two faces are coplanar, their dihedral angle is Π and the angle between the normals is 0.

The solid angle is the angle subtended by some area on a unit sphere in the same way that a 2D angle corresponds to the length of an arc on the unit circle. Another way to see it is by using a conic beam of light. Lasers have very narrow beam and tiny solid angle, torch lamps have a larger solid angle and light bulbs have an even greater solid angle since they emit light in almost every direction. The maximum value for the solid angle is 4π or 720°, it corresponds to the full sphere like a 2D angle of 2Π corresponds to the whole circle. The solid angle of an hemisphere is half that of the sphere so 2Π. Please do not confuse the angle of a circular cone with the solid angle of this cone (though they are linked by some relationship which is not the subject of the post). Solid angles are not defined for cone exclusively, I am merely using the cone as a simple example to apprehend the notion of solid angle.

The parallel with the previous 2D situation now becomes clearer if you consider that the angles between segments corresponds to the dihedral angles between faces, the length of the edges corresponds to the angles of the faces and the polygon area corresponds to the solid angle delimited by the faces. Beware that in 2D, we had angles, lengths and area and we now have dihedral angles, face angles and solid angle, all are angles but very different ones in what they represent and what value they may have, don't mix them up. By the way, the face angle of an n-gon regular convex face is Π(n-2)/n, it tends to Π when n tends to infinity. The reasoning is very much the same: by knowing all the face angles and f-3 dihedral angles with f being the number of faces and if the solution exists then there are only two configurations possible. The condition for the existence of the solution becomes a condition on angles (and not distances): the angle between the first edge of the first face and the last edge of the f-3 face must be smaller than the sum of the face angle of faces N-2 and N-1. In practice, we set the main vertex at the origin, place the first f-3 faces through the appropriate rotations and translations and record the direction of the first edge of the first face and the last edge of the last face (f-3). Then, we compute the angle between these vectors and finally, the remaining three dihedral angles as well as the solid angle when the solution exists.

Similarly as with the 2D case, I have made an app for viewing and exploring the configurations. You can also access it in a separate window. If nothing is displayed, please reload the page. The white disks represent the dihedral angles, the white sphere help visualising the solid angle. It is quite difficult to represent only the solid angle delimited by the faces so please imagine it. It becomes hard when self intersection are involved though but values are correct. The normals of the faces (the little black lines) are oriented from the face towards the exterior, the solid angle is computed for the interior part.

## Conclusion

We have seen that the 3D case corresponds unmistakenly to a 2d simple case, so basically we have solved two problems at once, yeah ! You can now try to check the value of dihedral angles for classic shapes like the Platonic, Archimedean solids, etc... What was this study for in the first place ? My idea is still to improve my understanding of regular face polyhedra. What I am trying to grasp here is an alternative way to describe polyhedra based on their dihedral angles. I hope this helps.

## References

I have not found any prior work on this specific topic, if you know any, please let me know, that would make me happy.