How do I calculate the dihedral angles of a Tetrahedron? (wordy, equations)

I am attempting to construct a model geodesic structure out of beveled panels. The structure is based on a third frequency icosahedron, in which the 20 triangles that make up a standard icosahedron are each subdivided into nine smaller triangles, and the vertices are “bumped out” to coincide with the circumscribing sphere. In this way the 3-frequency icosahedron more closely approximates a sphere. An example may be seen here (scroll down for the 3-frequency design.)

The 180 beveled panels come in two sizes. One is an isosceles triangle with side lengths (0.4124, 0.4124, 0.4035) and the other is an isosceles triangle with side lengths (0.3486, 0.3486, 0.4035). Those figures are based on an icosahedron with a radius of 1. I am trying to calculate the angles between adjacent faces of the icosahedron so I can bevel the edges of the triangles to help them fit together properly. Initially I looked at the problem from the point of view of the completed icosahedron, but had some trouble with the 3-dimensional geometry. Now I’m looking at it a different way, treating the triangular panel as the base of a tetrahedron with the fourth point at the center of the sphere. Doing this, I have a tetrahedron with three edges equal to the face side lengths listed above, and three edges equal to 1. The dihedral angles of the base of the tetrahedron are the bevels I will need to make. Given the known dimensions, the areas of the four faces and the corner angles of each of the triangular faces can be easily calculated.

Calculating the dihedral angles-- the angles between adjacent faces-- has been more problematic. I found an analog to the law of cosines that applies to the tetrahedron at this site (equation 28). Using that equation, I end up with four equations and six unknowns (the six dihedral angles.) However, because of symmetries in the tetrahedra I’m working with, there are two pairs of dihedral angles that are equal to each other, leaving four unknowns. As I made the substitutions, however, I found that two of the equations became essentially the same, due to the fact that two of the faces of my tetrahedron are of equal area. So I am left with three equations and four unknowns. I got the equations shown below, using the nomenclature in the equation cited above. I made point A[sub]1[/sub] the center of the sphere, A[sub]2[/sub] the vertex of the unequal angle of the isosceles triangle, and A[sub]3[/sub] and A[sub]4[/sub] the other vertices of the isosceles triangle. I substituted Q for theta because I have no Greek character skillz.

s[sub]1[/sub][sup]2[/sup] = s[sub]2[/sub][sup]2[/sup] + s[sub]3[/sub][sup]2[/sup] + s[sub]4[/sub][sup]2[/sup] -2s[sub]2[/sub]s[sub]3[/sub] cos Q[sub]23[/sub] -2s[sub]2[/sub]s[sub]4[/sub]cos Q[sub]24[/sub] -2s[sub]3[/sub]s[sub]4[/sub]cos Q[sub]34[/sub]
s[sub]2[/sub][sup]2[/sup] = s[sub]1[/sub][sup]2[/sup] + s[sub]3[/sub][sup]2[/sup] + s[sub]4[/sub][sup]2[/sup] -2s[sub]1[/sub]s[sub]3[/sub] cos Q[sub]13[/sub] -2s[sub]1[/sub]s[sub]4[/sub]cos Q[sub]14[/sub] -2s[sub]3[/sub]s[sub]4[/sub]cos Q[sub]34[/sub]
s[sub]3[/sub][sup]2[/sup] = s[sub]1[/sub][sup]2[/sup] + s[sub]2[/sub][sup]2[/sup] + s[sub]4[/sub][sup]2[/sup] -2s[sub]1[/sub]s[sub]2[/sub] cos Q[sub]12[/sub] -2s[sub]1[/sub]s[sub]4[/sub]cos Q[sub]14[/sub] -2s[sub]2[/sub]s[sub]4[/sub]cos Q[sub]24[/sub]
s[sub]4[/sub][sup]2[/sup] = s[sub]1[/sub][sup]2[/sup] + s[sub]2[/sub][sup]2[/sup] + s[sub]3[/sub][sup]2[/sup] -2s[sub]1[/sub]s[sub]2[/sub] cos Q[sub]12[/sub] -2s[sub]1[/sub]s[sub]3[/sub]cos Q[sub]13[/sub] -2s[sub]2[/sub]s[sub]3[/sub]cos Q[sub]23[/sub]

The way I set things up, every term in the fourth equation is equal to the corresponding term in the third equation due to symmetry. I vaguely recall dealing with this sort of thing when I was a student, but I am at a loss over how to do it now.

Can anyone out there tell me how I might go about calculating the dihedral angles of a tetrahedron, given all of the edge lengths? Is there some relationship that I am missing that will give me a fourth equation and enable me to solve the system of equations I have generated? Am I using the law of cosines (Eq. 28) correctly to generate four equations like those shown above?

Would this site help?
http://www.1728.com/volpyrmd.htm

Granted it says "pyramid calculator, but the base can be any regular polygon.

I actually came across that one in my searching. The trouble is that the figure I am working with does not meet the specifications at the bottom of the page (the faces are not congruent and the vertex is not directly above the center of the base.)

That domain also contains a page for solving systems of four equations, which I plan to use if I figure out the matrix in the OP.

Thanks anyway!

One way to proceed is to use the next equation at that URL (Eq. 29), an analog of the law of sines, to generate another equation:

(2/3 L[sub]12[/sub])s[sub]1[/sub]s[sub]2[/sub] sin Q[sub]12[/sub] = V = (2/3 L[sub]13[/sub])s[sub]1[/sub]s[sub]3[/sub] sin Q[sub]13[/sub]

Squaring this (and using sin[sup]2[/sup] = 1 - cos[sup]2[/sup]) gives an equation quadratic in the cosine, though, and solving a quadratic system is somewhat annoying.

For this particular tetrahedron, though, one of the dihedral angles is easy to calculate. The angle Q[sub]12[/sub] between A[sub]1[/sub]A[sub]3[/sub]A[sub]4[/sub] and A[sub]2[/sub]A[sub]3[/sub]A[sub]4[/sub] is the angle A[sub]1[/sub]MA[sub]3[/sub], where M is the midpoint of A[sub]3[/sub]A[sub]4[/sub]. Because these triangles are isosceles, M is also the foot of the altitude from A[sub]1[/sub] in A[sub]1[/sub]A[sub]3[/sub]A[sub]4[/sub] and the foot of the altitude A[sub]2[/sub] in A[sub]2[/sub]A[sub]3[/sub]A[sub]4[/sub], so the triangle A[sub]1[/sub]A[sub]2[/sub]M is easy to find.

More generally, a much easier way of finding dihedral angles computationally is to define your points in a Cartesian coordinate system and use vector algebra. The dihedral angle between two planes is the angle between their normal vectors, cos[sup]-1[/sup]((n[sub]1[/sub] . n[sub]2[/sub])/(|n[sub]1[/sub]| |n[sub]2[/sub]|)); a normal vector to a plane containing three noncollinear points A[sub]1[/sub], A[sub]2[/sub], A[sub]3[/sub] can found as n = (A[sub]2[/sub]-A[sub]1[/sub])x(A[sub]3[/sub]-A[sub]1[/sub]).

Here’s a somewhat ugly way to do it involving matrices.

Suppose that one vertex of the tetrahedron is at the origin and let v[sub]1[/sub], v[sub]2[/sub], and v[sub]3[/sub] be the vectors from the origin to the other three vertices. Then if d[sub]ij[/sub] denotes the length of the edge from vertex i to vertex j (with vertex 0 being the one at the origin, and the others being 1, 2, 3) we get:

|v[sub]i[/sub]|[sup]2[/sup] = d[sub]0i[/sub][sup]2[/sup]

and

|v[sub]i[/sub]-v[sub]j[/sub]|[sup]2[/sup] = d[sub]ij[/sub][sup]2[/sup]

if i is not equal to j, where |v| denotes the length of the vector v. A little big of algebra gives us:

v[sub]i[/sub] * v[sub]j[/sub] = (d[sub]0i[/sub][sup]2[/sup] + d[sub]0j[/sub][sup]2[/sup] - d[sub]ij[/sub][sup]2[/sup])/2

where * denotes the dot product.

Now let V be the 3x3 matrix whose (i,j)th entry is the dot product of v[sub]i[/sub] and v[sub]j[/sub], using the formulas above. Then let W be the inverse of V, and let the (i,j)th entry of W be denoted w[sub]ij[/sub].

Copying your notation, let Q[sub]12[/sub] be the dihedral angle between the “0,2,3-face” (i.e. the face opposite vertex 1) and the “0,1,3-face” (i.e. the face opposite vertex 2). I claim that:

cos(Q[sub]12[/sub]) = (+/-) w[sub]12[/sub] / sqrt( w[sub]11[/sub] w[sub]22[/sub] )

And similarly,

cos(Q[sub]13[/sub]) = (+/-) w[sub]13[/sub] / sqrt( w[sub]11[/sub] w[sub]33[/sub] )

and

cos(Q[sub]23[/sub]) = (+/-) w[sub]23[/sub] / sqrt( w[sub]22[/sub] w[sub]33[/sub] )

This method won’t give you the other three dihedral angles, just the three dihedral angles which meet at vertex 0. Of course, you can always make another vertex the origin and start again, and eventually get all six dihedral angles this way. The (+/-) is a nuisance (and if you label the vertices in the proper order then it should always come out to either “+” or “-” but I don’t remember which), but a quick sketch should tell you whether the angle you’re looking for is bigger or smaller than a right angle, which will tell you what the sign of the cosine should be.

For example, if all six edges of the tetrahedron are equal, then d[sub]ij[/sub]=1 (say) for all i and j. Then V is the matrix [ [1 0.5 0.5] [0.5 1 0.5] [0.5 0.5 1] ]. The inverse matrix W is then [ [0.75 -0.25 -0.25] [-0.25 0.75 -0.25] [-0.25 -0.25 0.75] ]. The above formula gives us cos(Q[sub]12[/sub]) = (+/-) (-1/3), and since the dihedral angles are less than a right angle we must have cos(Q[sub]12[/sub])=1/3, which means Q[sub]12[/sub] equals about 70.529 degrees.

This method words because the entries w[sub]ij[/sub] will be the dot products of three vectors w[sub]1[/sub], w[sub]2[/sub], and w[sub]3[/sub], each of which is perpendicular to the corresponding face of the tetrahedron (i.e., w[sub]1[/sub] is perpendicular to the face opposite vertex 1, and so on).

Thanks to all of you for your quick replies!

Omphaloskeptic, I used one of your suggestions and calculated the “easy” unknown dihedral angle to get a system of 3 equations and 3 unknowns, and I was home free. I had noticed that that angle could be calculated pretty simply, but I was so fixated on solving the whole system algebraically that I didn’t recognize that that was the key to the easiest solution, at least for the tetrahedrons I’m dealing with.

Now on to the actual building of the darned thing…