Lampshade angle computation

The analysis below emerged from the desire of knowing the angle between the planes of 2 adjacent panels of a stained glass lampshade. Constructing a lampshade is simplified after making a template of the correct angle. A tedious computation of the angle is given by Dr. Math on the forum. I would like to present a simple elegant formula from which the angle can be computed easily.

A lampshade consists of n identical panels. Each panel is a trapezium with parallel top and bottom sides, and with equal sizes at the left and the right side, see also figure 1. The parameters of a lampshade have the following definitions:

            n          number of panels of lampshade

            t           size of panel at the top

            b          size of panel at the bottom

            h          height of panel


Figure 1:  panel geometry

Figure 2:  geometry of angles


Figure 2 sketches 2 neighbouring panels of a lamp and the relevant angles. Angle φ is the angle between 2 edges at the top of the lamp. This angle only depends on the number of panels. Its size is:  φ = π - β , where β = 2 * π / n . The requested angle θ between the planes of the panels is also drawn in Figure 2. In fact this is the angle between the 2 lines (in the panels) that are perpendicular to the common edge of the panels. The size of θ is bigger than or equal to φ. Because of symmetry it does not matter whether the size of the panelís top edges are smaller of bigger than the bottom edges.

For the angle computation a XYZ coordinate system is introduced with the origin O at a panel vertex. A two-dimensional view is shown in Figure 3.


Figure 3:  two-dimensional view

Figure 4: three-dimensional view


 The top of the lampshade lies in the XY-plane. Figure 3 also shows the projection of the bottom vertices/edges onto the XY-plane. From the middle M two help lines have been drawn. One line goes through the vertices; the other line is perpendicular to the top edge and the projected bottom edge. From the triangles between the help lines the distance s between the two edges can be computed:

              , with d = ( b - t )/2 .

The computation of s is helpful for determining the vertex coordinates of point R, see Figure 4.

The steps of the angle computation are roughly:

1.    Determine coordinates of relevant vertices P, Q and R.

2.    Compute the normal vectors of each of the panel planes

3.    Compute the desired angle being the angle between the 2 normal vectors

The coordinates of vertices P, Q and R are as follows:



The two-dimensional view has revealed the X-coordinate and Y-coordinate of R. The Z-coordinate Rz is derived from the property that the size of vector  equals the length of a panel side. The equation    results into:  .

Secondly, the normal vectors are computed by taking cross products of the vectors along the edges. The first normal vector  of the panel through POR equals:



In the same way, the second normal vector  of the panel through ROQ equals:




In the third step we apply the dot product formula to the 2 normal vectors. The size of each normal vector equals: t * h. This yields the equation:




Dividing by  and replacing β simplifies to:




Distance s depends on φ and substituting it leads to the promised elegant formula:




From this formula it is obvious that   so that:    . On the other hand the right hand side of the equation must be at least -1 for having a valid value of angle θ. Rearranging this inequality results into:  . In case of equality the lampshade lies entirely in the two-dimensional XY-plane, see Figure 1.


Note that an alternative elegant formula based on sine can be derived:


             , where  is the length of a slant trapezium side.

Android app

I have made an android app which computes the angles β, φ and θ .You can download this app called LampShade.


Applying the formulas to the lampshade below made at FOKA yields:


t = 19 mm

b = 89 mm

h = 156 mm

n = 8

φ = 135 degrees

θ = 142.47 degrees