Suppose you have a general tetrahedron, you are given the three angles that define a vertex of that tetrahedron. You also know the length of the edges that converge on this same vertex.

Given that, calculate all dihedral angles.

From This question and its accepted answer I can get three of the six dihedral angles. I am trying to figure out the rest (the ones at the "base").

I tried adapting the answer for that question, extending the definition of $\vec v_1$, $\vec v_2$, $\vec v_3$, so that now they are not unit vectors, but their magnitude is the length of the edges.

Then we could similarly define a unit normal vector for the "base" as:

$$\vec n_{12}=\dfrac{\vec v_1 \times \vec v_2}{|\vec v_1 \times \vec v_2|} \quad\text{and} \quad \vec n_{b}=\dfrac{\vec v_1 \times \vec v_2 + \vec v_2 \times \vec v_3 + \vec v_3 \times \vec v_1}{|\vec v_1 \times \vec v_2 + \vec v_2 \times \vec v_3 + \vec v_3 \times \vec v_1|}$$

so then, similar to that answer:

$$\text{cos}(θ_{ab})=-\vec n_{12}\cdot \vec n_{b}$$

But this hasn´t taken me very far. I feel like I might be very close but my vector arithmetics is too rusty. Or it is just simply wrong.

EDIT: Already solved this, thanks to your answers. However I am still trying to solve using my original approach. After some vector operations I get to this:

$\text{cos}(θ_{ab})=- \dfrac{a^2b^2\text{sin}^2\phi_{ab}+b^2ac(\text{cos}\phi_{ab}\text{cos}\phi_{bc}-\text{cos}\phi_{ac})+a^2bc(\text{cos}\phi_{ac}\text{cos}\phi_{ab}-\text{cos}\phi_{bc})}{ab\text{sin}\phi_{ab}(|\vec v_1 \times \vec v_2 + \vec v_2 \times \vec v_3 + \vec v_3 \times \vec v_1|)}$

Where $a,b,c$ are the lengths of the edges along $\vec v_1,\vec v_2,\vec v_3$ (also their magnitudes) and $\phi_{ab}$ is the angle between edges $a$ and $b$ (and so on)

So it is looking quite well, because it is mostly in terms of the angles and edge lengths, but still need to simplify those vectors. Any ideas?

  • $\begingroup$ You can use the cosine rule to find the other three edges, and then to find the other angles between the edges. $\endgroup$ Aug 15, 2021 at 10:48
  • 1
    $\begingroup$ The vector normal to the base is not correct. The correct one is $$\vec{n}_b \, =\, \frac{\vec{v}_1 \times \vec{v}_2 + \vec{v}_2 \times \vec{v}_3+ \vec{v}_3 \times \vec{v}_1}{|\vec{v}_1 \times \vec{v}_2 + \vec{v}_2 \times \vec{v}_3+ \vec{v}_3 \times \vec{v}_1|}$$ $\endgroup$ Aug 16, 2021 at 13:26
  • $\begingroup$ @Futurologist thanks, you are right. I have edited the question. Can you take a look at the edit? maybe you can pitch in on that $\endgroup$ Aug 16, 2021 at 16:27
  • $\begingroup$ @ManuelRuiz Well, do you want a formula (possibly very convoluted if you try one formula or a chain of two three formulas) or do you want an algorithm to calculate this. $\endgroup$ Aug 16, 2021 at 16:29

3 Answers 3


I would solve the triangular faces of the tetrahedron first.

Let $A,B,C,D$ be the vertices of the tetrahedron and assume that the measures of $\angle s BAC,CAD,DAB$ and the lengths $AB,AC,AD$ are given.

From the given values of $\angle BAC, AB, AC$ use the planar Law of Cosines to get $BC$ in $\triangle ABC$, then with all three sides known apply the Law of Cosines again to get the remaining angles of this triangle. Apply a similar procedure to solve $\triangle s ACD,ADB$.

Next you need to solve the base $\triangle BCD$. You know its sides from the previous steps, so getits angles from, you guessed it, the planar Law of Cosines.

You are now ready to tackle the dihedral angles. With all the planar angles known at each vertex, draw a small sphere centered at vertex $A$. this intersects the tetrahedron in a spherical triangle whose arcs have the same measure as $\angle s BAC,CAD,DAB$. Now apply the appropriate spherical Law of Cosines to get the angles of this spherical triangle which are the dihedral angles between the faces converging at vertex $A$. Repeat this procedure at other vertices until you have accumulated all the dihedral angles, which should require analyzing three of the vertices.


Let exactly three faces of any polyhedron meet at a vertex. Also let the angle of each polygon at that vertex be known. Call them $\alpha$, $\beta$, and $\gamma$. Let $\theta$ be the dihedral angle on the edge opposite the face having angle $\gamma$. Here is a relationship that can be used to derive $\theta$:

$\cos \theta = \frac {\cos \gamma - \cos \alpha \cos \beta}{\sin \alpha \sin \beta}$

The derivation of that equation is explained in this article.

With the given angles alone, it is possible to use this same formula to derive the dihedral angles on all three of the given edges.

Now, use the cosine rule of triangles to derive the lengths of the three unknown edges, one edge opposite each of the given angles. At this point, you will have the lengths of all six edges of the tetrahedron, i.e., all three sides on each triangle face. Use the cosine rule again to derive all three angles on each face.

At this time, you have the angle of all three faces meeting at any vertex. The equation above can now be used to clean up the remaining dihedral angles.

  • $\begingroup$ Choosing this answer because it is the simplest and clearest. What I really wanted was to get a formula where one could just plug in the values and get a result. But I followed all of the three answer's procedures and this seemed very unlikely as the formula quickly turned out monstrous. I ended up using your approach to write a program to do the calculations so now I can plug values and get a result. Thank you! $\endgroup$ Aug 16, 2021 at 14:37

I've used the Cartesian coordinate frame to find the coordinates of all the vertices of the tetrahedron.

Place the given vertex at the origin $(0, 0, 0)$. Then the three edges meeting at the vertex are represented by the vectors $\vec{A}$ , $\vec{B}$ and $\vec{C}$.

We can take vector $\vec{A}$ to be along the $x$ axis, so we'll take point $A$ to be

$A = (a, 0, 0) $

where $a$ is the given length of this edge.

Next, we have point $B$, such that the angle between $\vec{B}$ and $\vec{A}$ is $\theta_{12}$, from this it follows that

$B = (b \cos \theta_{12}, b \sin \theta_{12} , 0 )$

Finally, we want to find the point $C$ along the third edge, so let

$C = (x, y, z)$

From the length requirement we know that $x^2 + y^2 + z^2 = c^2$

And from the angle constraints, we know that

$\vec{A} \cdot \vec{C} = a c \cos \theta_{13} = a x $

Hence $x = c \cos \theta_{13}$

Next, we know that

$\vec{B} \cdot \vec{C} = b c \cos \theta_{23} = b x \cos \theta_{12} + b y \sin \theta_{12} $

From this, it follows that,

$ y = c \dfrac{ \cos \theta_{23} - \cos \theta_{13} \cos \theta_{12} }{ \sin \theta_{12} }$

Using the length equation we can directly solve for $z$.

Now point $C$ is known. So all the vertices of the tetrahedron have known coordinates. One can now obtain the normals to the faces of the tetrahedron, then compute the dihedral angles in a direct way.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .