get dihedral angles of octahedron given all triangles

152 Views Asked by At

An octahedron (not necessarily regular) consists of 8 triangles. You can see it as two pyramids glued together (for now on I only consider this case). Call the triangles in the upper pyramid $T_1, T_2, T_3, T_4 $ (clockwise) and in the lower pyramid $T_5, …, T_8$ (clockwise). The seams are $(T_i, T_{i+1}) (i=1,2,3,5,6,7), (T_4, T_1), (T_8, T_5)$ and $(T_i, T_{i+4}) (i=1,2,3,4)$.

Assume you now all information about the triangles. Call the angles and length for triangle $T_i$ (starting from the top (for $i = 1,...,4$), resp. bottom (for $i = 5,6,7,8$) and go clockwise): $(a_i, b_i, c_i)$ for lengths and $(\alpha_i, \beta_i, \gamma_i)$ for the angles.

You know that they form an octahedron, the question is know: How can I find all dihedral angles? I guess you can find equations to which these dihedral angles need to fullfill and that by solving these system of equations I can find the dihedral angles.

Does someone have ideas for getting these equations?

3

There are 3 best solutions below

3
On BEST ANSWER

This boils down to finding dihedral angles in a pyramid with quadrilateral base, given all its edges. Let's take then a pyramid with base $ABCD$ and vertex $V$ and give its edges the names in figure below: $abcd$ its lateral edges and $pqrs$ its base edges. Let's also name the diagonals of the base: $x=AC$ and $y=BD$, while $h=VH$ is the height of the pyramid (not shown in the figure).

To compute dihedral angles we need to compute $x$, $y$ and $h$. To this end, let's recall that the volume of a tetrahedron and the area of a triangle can be computed from their edges via the Cayley-Menger determinant. For intance, the volume of tetrahedron $VABC$ is: $$ 288(\text{volume}_{VABC})^2= \begin{vmatrix} 0 & 1 & 1 & 1 & 1 \\ 1 & 0 & a^2 & b^2 & c^2 \\ 1 & a^2 & 0 & p^2 & x^2 \\ 1 & b^2 & p^2 & 0 & q^2 \\ 1 & c^2 & x^2 & q^2 & 0 \end{vmatrix} $$ while the area of triangle $ABC$ is given by: $$ 16(\text{area}_{ABC})^2= -\begin{vmatrix} 0&1&1&1\\1&0&x^2&q^2\\1&x^2&0&p^2\\1&q^2&p^2&0 \end{vmatrix} $$ But the height of tetraheron $VABC$ is the same as $h$, which gives: $$ h={3\text{volume}_{VABC}\over\text{area}_{ABC}}. $$ We can then compute in the same way $h$ as the height of tetrahedron $VCDA$: $$ h={3\text{volume}_{VCDA}\over\text{area}_{CDA}}. $$ Equating those expressions for $h$ we can then find an equation for $x$, which can be written as: $$ \begin{vmatrix} 0 & 1 & 1 & 1 & 1 \\ 1 & 0 & a^2 & b^2 & c^2 \\ 1 & a^2 & 0 & p^2 & x^2 \\ 1 & b^2 & p^2 & 0 & q^2 \\ 1 & c^2 & x^2 & q^2 & 0 \\ \end{vmatrix} \cdot \begin{vmatrix} 0&1&1&1\\1&0&x^2&s^2\\1&x^2&0&r^2\\1&s^2&r^2&0 \end{vmatrix}= \begin{vmatrix} 0 & 1 & 1 & 1 & 1 \\ 1 & 0 & c^2 & d^2 & a^2 \\ 1 & c^2 & 0 & r^2 & x^2 \\ 1 & d^2 & r^2 & 0 & s^2 \\ 1 & a^2 & x^2 & s^2 & 0 \\ \end{vmatrix}\cdot \begin{vmatrix} 0&1&1&1\\1&0&x^2&q^2\\1&x^2&0&p^2\\1&q^2&p^2&0 \end{vmatrix} $$

This is a quartic equation for $x^2$, which can be solved if the edges of the pyramid are given. One only has to be careful to discard spurious solutions, which are not only negative solutions but also those where $x$ fails to satisfy triangle inequality in triangles $ACB$, $ACD$ and $ACV$.

In the same way we can obtain an equation for $y$, considering tetrahedra $VDAB$ and $VBCD$. Once we know diagonals $x$ and $y$ we can plug them into the expression given above to get the height $h$.

enter image description here

Finding dihedral angles is now straightforward. For instance, if $h_p$ is the height of triangle $VAB$ to base $AB$, then the angle $\theta_p$ between $VAB$ and the base is given by: $$ \sin\theta_p={h\over h_p}. $$ Computing the dihedral angle between two lateral faces is slightly more involved (see figure below). To compute, for instance, the angle $\phi_{b}$ between faces $ABV$ and $CBV$ we need the altitudes of those triangles to the common base $VB$: let them be $AH=h_A$ and $CK=h_C$. We also need the length $HK=\delta$, to obtain by the cosine law: $$ \cos\phi_b={h_A^2+h_C^2+\delta^2-x^2\over2h_Ah_C}. $$

enter image description here

EXAMPLE.

Let's take: $$ a = 10,\quad b = 8,\quad c = 7,\quad d = 8,\quad p = 7,\quad q = 8,\quad r = 9,\quad s = 8. $$ The above equations for $x$ and $y$ give only one valid solution: $$ x=\sqrt{245003 + 1645 \sqrt{25465}\over3322}\approx12.3601, \quad y=\sqrt{20999 - 67 \sqrt{25465}\over102}\approx10.0525 $$ and $$ h={5\over192} \sqrt{(932869271 - 4254299 \sqrt{25465})\over5487} \approx5.60273 $$ To compute the angle $\theta_b$ between face $VAB$ and the base, we must compute the altitude of $VAB$ to base $AB$: $$ h_p={2\text{area}_{VAB}\over p}={15 \sqrt{55}\over14} \approx7.94593 $$ and from there: $$ \sin\theta_p={h\over h_p}\approx0.705107 $$ To compute the angle $\phi_b$ between faces $VBA$ and $VBC$ we must compute the altitudes of these triangles to base $VB$: $$ h_A={2\text{area}_{VBA}\over b}={15 \sqrt{55}\over16} \approx6.95269,\quad h_C={2\text{area}_{VBC}\over b}={21 \sqrt{23}\over16} \approx6.29453 $$ and then: $$ VH=\sqrt{a^2-h_A^2}={115\over16},\quad VK=\sqrt{c^2-h_C^2}={49\over16},\quad \delta=HK=VH-VK={33\over8}. $$ Finally: $$ \cos\phi_b={h_A^2+h_C^2+\delta^2-x^2\over2h_Ah_C}= {1327733 - 21056 \sqrt{25465}\over104643 \sqrt{1265}} \approx-0.546059. $$

5
On

Let the vertices of the pyramid be $A,B,C,D,V$, where $ABCD$ is the base and $V$ is the apex. Using coordinate geometry, and letting the given sides of the base be $a = AB, b = BC, c = CD, d = DA $, we can assign $A,B,C,D$ as follows

$ A = (0,0,0) , B= (a, 0, 0), C= (x_1, y_1, 0), D = (x_2, y_2, 0) $

with $y_1, y_2 \gt 0 $

Further, we have $V = (x_3, y_3, z_3)$ with $z_3 \gt 0$

Let $e = VA, f = VB, g = VC , h = VD $, then it is straightforward to write the following seven equations in the seven unknowns $x_1,y_1, x_2, y_2, x_3, y_3, z_3$:

$(x_1 - a)^2 + y_1^2 = b^2 \tag{1}$

$(x_1 - x_2)^2 + (y_1 - y_2)^2 = c^2 \tag{2} $

$x_2^2 + y_2^2 = d^2 \tag{3}$

$x_3^2 + y_3^2 + z_3^2 = e^2 \tag{4}$

$(x_3 - a)^2 + y_3^2 + z_3^2 = f^2 \tag{5}$

$(x_3 - x_1)^2 + (y_3 - y_1)^2 + z_3^2 = g^2 \tag{6} $

$(x_3 - x_2)^2 + (y_3 - y_2)^2 + z_3^2 = h^2 \tag{7}$

Subtracting equations $(5),(6), and (7)$ from equation $(4)$, we get

$2 a x_3 - a^2 = e^2 - f^2 \tag{8}$

$2 x_1 x_3 + 2 y_1 y_3 - x_1^2 - y_1^2 = e^2 - g^2 \tag{9} $

$ 2 x_2 x_3 + 2 y_2 y_3 - x_2^2 - y_2^2 = e^2 - h^2 \tag{10} $

Equation $(8)$ gives $x_3$:

$ x_3 = \dfrac{ e^2 - f^2 + a^2}{2 a} \tag{11}$

Using equations $(1)$ in $(9)$ and $(3)$ in $(10)$ yields

$2 x_1 x_3 + 2 y_1 y_3 - 2 a x_1 = e^2 - g^2 + b^2 - a^2 \tag{12} $

$ 2 x_2 x_3 + 2 y_2 y_3 = e^2 - h^2 + d^2 \tag{13} $

We can now eliminate $y_3$ from equations $(12)$, $(13)$, and find that

$y_1 (e^2 - h^2 + d^2 - 2 x_2 x_3) = y_2 ( e^2 - g^2 + b^2 - a^2 + 2 x_1 (a - x_3) ) \tag{14} $

We also have equation $(2)$ which when expanded gives

$ x_1^2 - 2 x_1 x_2 + x_2^2 + y_1^2 - 2 y_1 y_2 + y_2^2 = c^2 \tag{15}$

Using equation $(1), (2)$, we have (remember $y_1, y_2 \gt 0$):

$ y_1 = \sqrt{ b^2 - (x_1 - a)^2 } $

$ y_2 = \sqrt{ d^2 - x_2^2 } $

and also we have

$ x_1^2 + y_1^2 = b^2 - a^2 + 2 a x_1 $

$ x_2^2 + y_2^2 = d^2 $

Therefore, equation $(15)$ reduces to

$ 4(b^2 - (x_1 - a)^2 ) (d^2 - x_2^2) = (c^2 - b^2 + a^2 - d^2 + 2 x_1 x_2 - 2 a x_1 )^2 \tag{16}$

Now, with the same substitutions, equation $(14)$ reduces to

$ (b^2 - (x_1 - a)^2 )( e^2 - h^2 + d^2 - 2 x_2 x_3 )^2 = (d^2 - x_2^2) (e^2 - g^2 + b^2 - a^2 + 2 a x_1 - 2 x_1 x_3 )^2 \tag{17} $

Equations $(16)$ and $(17)$ are quadratic in $x_1, x_2, x_1 x_2 $

Defining our solution variables as $X_1 = x_1, X_2 = x_2, X_3 = x_1 x_2 $ and starting from equations $(16)$, $(17)$, and after some tedious but simple algebraic manipulations, we will end up with the following three quadratic equations:

From the definition of $X_3$ we have

$ V^T Q_1 V = 0 \tag{18}$

and from equations $(16), (17)$ we have

$ V^T Q_2 V = 0 \tag{19}$

and

$ V^T Q_3 V = 0 \tag{20}$

where $ V = [X_1, X_2, X_3, 1]^T $ and

$ Q_1 = \begin{bmatrix} 0 && 1 && 0 && 0 \\ 1 && 0 && 0 && 0 \\ 0 && 0 && 0 && -1 \\ 0 && 0 && -1 && 0 \end{bmatrix} $

$Q_2 = \begin{bmatrix} 4a^2 + 4d^2 && 0 && -4a && -2ac_1 - 4 ad^2 \\ 0 && 4c_2 &&4a &&0 \\ - 4 a && 4 a && 0 && 2 c_1 \\ -2 ac_1 - 4ad^2 && 0 && 2 c_1 && c_1^2 - 4d^2 c_2 \end{bmatrix} $

$ Q_3 = \begin{bmatrix} - k_1^2 - 4 d^2 (a - u)^2 && 0 && 2k_1 u && ak_1^2 - 2 k_2 d^2 (a - u) \\ 0 && 4 c_2 u ^2 + k_2 ^ 2 && 4 a u ^2 + 2 k_2 (a - u) && - 2 c_2 k_1 u \\ 2k_1 u && 4a u^2 + 2 k_2 (a- u) && - 4u^2 + 4 (a- u)^2 && -4a k_1 u \\ a k_1^2 - 2k_2d^2 (a-u) && -2c_2 k_1 u && -4ak_1 u && c_2 k_1^2 - d ^ 2 k_2^2 \end{bmatrix} $

where:

$ c_1 = c ^ 2 - b^2 + a^2 - d ^ 2 $

$ c_2 = b ^2 - a^2 $

$ k_1 = e^2 - h^2 + d^2 $

$k_2 = e^2 - g^2 + b^2 - a^2 $

$ u = x_3 = \dfrac{ e^2 - f^2 + a^2 }{2 a} $

The system of equations $(18)-(20)$ can be solved for $X_1, X_2, X_3$, and then the valid solution has to be picked from the obtained solutions.

I used a solver that I developed myself to solve this system, and it is written in Excel VBA (Visual Basic for Applications). It is available in this Excel online file that contains the source code for the function "intersect_three_quadrics" which solves a system of three quadratic equations in three unknowns, and also other functions that solve a system of two quadratic equations in two unknowns. These are included in this file as macros (VBA script). Click on the link, to open the online file, then click on "Editing" and choose "Open in Desktop App". This will open the file in your desktop Excel program. Click "View" then select "Macros".

Using the example, given by @intelligenti pauca, where he chose

$ a = 7, b = 8, c = 9, d = 8 , e = 10, f = 8 , g = 7 , h = 8 $

I solved the system of equations using the above mentioned function, and obtained $7$ solutions out of which only one is valid. The corresponding vertices for this solution are

$ A = (0,0,0)$

$ B = (7, 0, 0)$

$ C = (9.840846699, 7.478609, 0 ) $

$ D = (0.85342928, 7.954348, 0) $

$ V = (6.071428571, 5.634461, 5.602732 ) $

Now it is fairly straightforward to compute the dihedral angles between any two adjacent faces out of the five faces of the pyramid.

1
On

Another way to solve this problem is as follows. Place $A,B,C,D$ on the $xy$ plane. Let $ a = AB , b = BC , c = CD, d = DA $, and let $V$ be the apex with a $z$ coordinate that is positive. Let $ e= VA, f = VB, g = VC, h = VD $.

Now express the coordinates of all the points using three angles. Angles $\theta$ and $\phi$ are the angles that $AD$ and $BC$ makes with the positive $x$ axis. And angle $\psi$ is the angle of rotation of the face $ABV$ from the triangle $ABV'$ which is a congruent with it, but has $V'$ on the $xy$ plane with the $y$ coordinate of $V'$ negative. The rotation is by angle $\psi$ clockwise about the $x$-axis. Since the sides of this triangle are known to be $a, e, f$, then we can drop a perpendicular from $V'$ onto $AB$, with the altitude being $ h_1 = e \sin \alpha $ and the offset of the foot of the perpendicular from point $A$ is $ f_1 = e \cos \alpha $, where $ \alpha = \angle BAV' = \cos^{-1} \left( \dfrac{a^2 + e^2 - f^2 }{2 a e }\right)$.

With this setup, the coordinates of $A,B,C,D,V$ as as follows

$ A = (0,0,0) , B = (a, 0, 0), C = (a + b x_1, b y_1,0) , D = (d x_2, d y_2,0) , V = ( f_1 , - h_1 x_3 , h_1 y_3 ) $

Where $x_1 = \cos \phi, y_1 = \sin \phi , x_2 = \cos \theta, y_2 = \sin \theta , x_3 = \cos \psi, y_3 = \sin \psi $

From the coordinates of the vertices, we have three equations that have to be satisfied simultaneously.

$ CD^2 = c^2 = (a + b x_1 - d x_2)^2 + (b y_1 - d y_2)^2 \tag{1} $

$ VC^2 = g^2 = (a + b x_1 - f_1)^2 + (b y_1 + h_1 x_3)^2 + h_1 y_3^2 \tag{2}$

$VD^2 = h^2 = (f_1 - d x_2)^2 + (d y_2 + h_1 x_3)^2 + h_1^2 y_3^2 \tag{3}$

Using the fact that $x_1^2 + y_1^2 = x_2^2 + y_2^2 = x_3^2 + y_3^2 = 1 $ and $ f_1^2 + h_1^2 = e^2 $ these three equations reduce to

$ 2 b d y_1 y_2 = K_1 + 2 a b x_1 - 2 a d x_2 - 2 b d x_1 x_2 \tag{4} $

where $K_1 = a^2 + b^2 + d^2 - c^2$

$ 2 b h_1 y_1 x_3 = K_2 + C_2 x_1 \tag{5} $

where $K_2 = g^2 - a^2 - b^2 - e^2 + 2 a f_1 $ and $C_2 = 2 b (f_1 - a) $

and

$ 2 d h_1 x_3 y_2 = K_3 + C_3 x_2 \tag{6} $

where $K_3 = h^2 - e^2 - d^2 $ and $C_3 = 2 f_1 d $

Dividing $(5)$ by $(6)$, and cross multiplying gives

$ b y_1 ( K_3 + C_3 x_2) = d y_2 ( K_2 + C_2 x_1) \tag{7} $

Squaring,

$ b^2 (1 - x_1^2) (K_3 + C_3 x_2)^2 = d^2 (1 - x_2^2) (K_2 + C_2 x_1)^2 \tag{8} $

Squaring equation $(4)$ gives,

$ 4 b^2 d^2 (1 - x_1^2) (1 - x_2)^2 = \bigg( K_1 + 2 a b x_1 - 2 a d x_2 - 2 b d x_1 x_2 \bigg)^2 \tag{9} $

Equations $(8)$ and $(9)$ are quadratic in the variables $X_1 = x_1, X_2 = x_2$ and $X_3 = x_1 x_2 $

This means that if we define our variables vector to be $V = [X_1, X_2, X_3, 1]^T $ then the three equations that describe the relation between the variables $x_1,x_2$ can be written as

$ V^T Q_1 V = 0$

$ V^T Q_2 V = 0 $

$V^T Q_3 V = 0 $

where $Q_1, Q_2, Q_3$ are $4 \times 4$ symmetric matrices. We'll take $Q_1$ is represent the fact that $X_3 = X_1 X_2$, hence,

$Q_1 = \begin{bmatrix} 0 && 1 && 0 && 0 \\ 1 && 0 && 0 && 0 \\ 0 && 0 && 0 && -1 \\ 0 && 0 && -1 && 0 \end{bmatrix}$

Matrices $Q_2$ and $Q_3$ follow from equations $(8)$ and $(9)$, respectively.

I've written down the code necessary to solve these quadratic equations. I used a solver that I developed myself to solve this system, and it is written in Excel VBA (Visual Basic for Applications). It is available in this Excel online file that contains the source code for the function "intersect_three_quadrics" which solves a system of three quadratic equations in three unknowns, and also other functions that solve a system of two quadratic equations in two unknowns. These are included in this file as macros (VBA script). Click on the link, to open the online file, then click on "Editing" and choose "Open in Desktop App". This will open the file in your desktop Excel program. Click "View" then select "Macros".

The program worked as expected. I tested it with a test pyramid (where the vertices are specified, and from which the edge lengths are computed). These edge lengths were input to the program and the program returned with a unique solution generating the coordinates of the vertices, which matched the original pyrmaid.

Once the coordinates of the pyramid vertices have been determined, it is fairly straightforward to compute the dihedral angles between any two adjacent faces out of the five faces of the pyramid.

I'd like to thank @koen ruymbeek for a very interesting problem.