In short

Two planes in space either meet (forming a line of intersection and a dihedral angle) or are parallel. The angle between them is the angle between their normals. Parallel means the normals are parallel; perpendicular means the normals are perpendicular. A line makes an angle with a plane that is the complement of the angle it makes with the normal. All of these reduce to a single dot-product computation.

Hold a book open in front of you. The two halves of the open book are two planes, and they meet along the spine. The angle between them \u2014 the angle you see when you look at the book edge-on \u2014 is called the dihedral angle. Open the book wider and the angle grows. Close it and the angle shrinks. If you lay both halves completely flat, the angle is 180\degree and the two halves become one plane.

Every pair of non-parallel planes in three-dimensional space meets in exactly the same way: along a line, at a definite angle. The question this article answers is: given the equations of two planes, how do you compute that angle, find that line, and recognise the special cases where the planes are parallel or perpendicular?

The answer, every time, lives in the normal vectors.

Angle between two planes

Take two planes:

\pi_1 : a_1x + b_1y + c_1z = d_1 \qquad \pi_2 : a_2x + b_2y + c_2z = d_2

Their normal vectors are \vec{n_1} = (a_1, b_1, c_1) and \vec{n_2} = (a_2, b_2, c_2).

The angle between the planes is the angle between their normals \u2014 or more precisely, the acute angle between their normals (since normals can point in either direction, you always take the version between 0\degree and 90\degree).

Why is the angle between normals the same as the angle between planes? Picture two walls meeting at a corner. The normals stick out sideways from each wall. If the walls are nearly parallel, the normals are nearly parallel too, and the angle between them is small \u2014 which matches the small angle between the walls. If the walls are perpendicular, the normals are perpendicular. The normal vectors faithfully record the tilt of each plane, so the angle between tilts is the angle between normals.

From the dot product formula:

\cos\theta = \frac{|\vec{n_1} \cdot \vec{n_2}|}{|\vec{n_1}|\,|\vec{n_2}|}

The absolute value in the numerator ensures you get the acute angle.

Angle between two planes

If \pi_1 has normal \vec{n_1} = (a_1, b_1, c_1) and \pi_2 has normal \vec{n_2} = (a_2, b_2, c_2), the acute angle \theta between them satisfies

\cos\theta = \frac{|a_1 a_2 + b_1 b_2 + c_1 c_2|}{\sqrt{a_1^2 + b_1^2 + c_1^2}\;\sqrt{a_2^2 + b_2^2 + c_2^2}}

Expanding the dot product and magnitudes explicitly:

\cos\theta = \frac{|a_1 a_2 + b_1 b_2 + c_1 c_2|}{\sqrt{a_1^2 + b_1^2 + c_1^2}\;\sqrt{a_2^2 + b_2^2 + c_2^2}}

This is the same formula you use for the angle between two vectors, except with the absolute value guaranteeing \theta \in [0\degree, 90\degree].

The dihedral angle between two planes equals the angle between their normalsTwo planes meeting along a line of intersection. Each plane has a normal vector sticking out from it. The angle theta between the normals equals the dihedral angle between the planes. line of intersection n\u20d7\u2081 n\u20d7\u2082 \u03b8 \u03c0\u2081 \u03c0\u2082
Two planes meeting along a line. Their normals $\vec{n_1}$ and $\vec{n_2}$ point away from each plane. The angle $\theta$ between the normals equals the dihedral angle between the planes.

Conditions for parallel and perpendicular planes

Two extreme cases deserve their own names.

Parallel planes. Two planes are parallel when their normals point in the same (or opposite) direction \u2014 that is, when \vec{n_1} and \vec{n_2} are scalar multiples of each other:

\frac{a_1}{a_2} = \frac{b_1}{b_2} = \frac{c_1}{c_2}

When this holds, the planes have the same tilt and never meet. The angle between them is 0\degree. Examples: x + 2y - z = 5 and 2x + 4y - 2z = 3 are parallel (the second normal is twice the first).

Perpendicular planes. Two planes are perpendicular when their normals are perpendicular \u2014 when the dot product is zero:

a_1 a_2 + b_1 b_2 + c_1 c_2 = 0

The angle between them is 90\degree. Examples: x + y + z = 1 and x - y = 0 are perpendicular, because (1)(1) + (1)(-1) + (1)(0) = 0.

Parallel and perpendicular conditions

Two planes with normals \vec{n_1} = (a_1, b_1, c_1) and \vec{n_2} = (a_2, b_2, c_2) are:

  • Parallel if and only if \vec{n_1} \times \vec{n_2} = \vec{0}, i.e., \dfrac{a_1}{a_2} = \dfrac{b_1}{b_2} = \dfrac{c_1}{c_2}.

  • Perpendicular if and only if \vec{n_1} \cdot \vec{n_2} = 0, i.e., a_1 a_2 + b_1 b_2 + c_1 c_2 = 0.

Notice the symmetry: parallelism is detected by the cross product being zero (the normals are aligned). Perpendicularity is detected by the dot product being zero (the normals are orthogonal). The two products \u2014 dot and cross \u2014 divide the world of plane-pairs cleanly into these cases.

Parallel vs perpendicular planesTwo side-by-side diagrams. On the left, two parallel planes with parallel normals pointing upward. On the right, two perpendicular planes with perpendicular normals. parallel n\u20d7\u2081 \u2225 n\u20d7\u2082 perpendicular n\u20d7\u2081 \u22a5 n\u20d7\u2082
Left: parallel planes have parallel normals. Right: perpendicular planes have perpendicular normals. The relationship between the planes is always the same as the relationship between their normals.

Line of intersection of two planes

When two non-parallel planes meet, they intersect in a straight line. Every point on that line satisfies both plane equations simultaneously. Finding the line means solving the system

a_1 x + b_1 y + c_1 z = d_1
a_2 x + b_2 y + c_2 z = d_2

This is two equations in three unknowns, so the solution is a one-parameter family \u2014 a line.

Direction of the line. The line lies in both planes, so it is perpendicular to both normals. A vector perpendicular to two given vectors is their cross product:

\vec{d} = \vec{n_1} \times \vec{n_2}

This immediately gives you the direction of the line of intersection, without solving any system at all.

A point on the line. To get a specific point, set one coordinate to a convenient value (often z = 0, or whichever makes the algebra cleanest) and solve the resulting 2 \times 2 system.

The full method, step by step:

  1. Compute \vec{d} = \vec{n_1} \times \vec{n_2}.
  2. If \vec{d} = \vec{0}, the planes are parallel (no line of intersection).
  3. Otherwise, set one variable (say z = 0) and solve the two equations for x and y. This gives a point (x_0, y_0, 0) on the line.
  4. Write the line in symmetric or parametric form using the point and direction.

Here is a concrete computation. Take \pi_1 : x + y + z = 6 and \pi_2 : 2x - y + z = 3.

Direction: \vec{n_1} = (1, 1, 1), \vec{n_2} = (2, -1, 1).

\vec{d} = \vec{n_1} \times \vec{n_2} = \begin{vmatrix} \hat{i} & \hat{j} & \hat{k} \\ 1 & 1 & 1 \\ 2 & -1 & 1 \end{vmatrix}
= \hat{i}(1 \cdot 1 - 1 \cdot (-1)) - \hat{j}(1 \cdot 1 - 1 \cdot 2) + \hat{k}(1 \cdot (-1) - 1 \cdot 2)
= \hat{i}(1 + 1) - \hat{j}(1 - 2) + \hat{k}(-1 - 2) = 2\hat{i} + \hat{j} - 3\hat{k}

So \vec{d} = (2, 1, -3).

A point: Set z = 0. The system becomes x + y = 6 and 2x - y = 3. Adding: 3x = 9, so x = 3, y = 3. The point is (3, 3, 0).

The line:

\frac{x - 3}{2} = \frac{y - 3}{1} = \frac{z}{-3}

Verify: at t = 1, the point is (5, 4, -3). Check \pi_1: 5 + 4 + (-3) = 6. Check \pi_2: 2(5) - 4 + (-3) = 3. Both satisfied \u2014 the point lies on both planes, confirming it is on the line of intersection.

Notice that the direction (2, 1, -3) is perpendicular to both normals: \vec{d} \cdot \vec{n_1} = 2 + 1 - 3 = 0 and \vec{d} \cdot \vec{n_2} = 4 - 1 - 3 = 0. The cross product automatically guarantees this, but checking it is a good habit.

Line of intersection of two planes

If \pi_1 has normal \vec{n_1} and \pi_2 has normal \vec{n_2}, and the planes are not parallel, then:

  • The direction of the line of intersection is \vec{d} = \vec{n_1} \times \vec{n_2}.
  • A point on the line is found by setting one variable to zero and solving the 2 \times 2 system.
Two planes intersecting in a lineTwo planes meeting along a dashed line. The normals n1 and n2 point outward from the planes, and the direction of the intersection line is n1 cross n2. intersection line n\u20d7\u2081 n\u20d7\u2082 \u03c0\u2081 \u03c0\u2082
Two non-parallel planes meeting along a line (dashed red). The direction of this line is $\vec{n_1} \times \vec{n_2}$ \u2014 perpendicular to both normals, which forces it to lie in both planes simultaneously.

Angle between a line and a plane

There is one more angle to compute: the angle a straight line makes with a plane. This is not the angle between two planes, and it is not the angle between two lines. It is the angle between one line and one plane.

The angle between a line and a plane is defined as the angle between the line and its projection onto the plane. Geometrically, if you imagine shining a light straight down onto the plane, the shadow of the line on the plane is its projection, and the angle between the line and its shadow is what you want.

Now, the line's direction vector is \vec{d}, and the plane's normal is \vec{n}. The angle between \vec{d} and \vec{n} is some angle \alpha. The angle between the line and the plane is not \alpha \u2014 it is 90\degree - \alpha, because the normal is perpendicular to the plane, not parallel to it.

From the dot product:

\cos\alpha = \frac{|\vec{d} \cdot \vec{n}|}{|\vec{d}|\,|\vec{n}|}

Since the angle \phi between the line and the plane satisfies \phi = 90\degree - \alpha, and \cos(90\degree - \phi') = \sin\phi':

\sin\phi = \frac{|\vec{d} \cdot \vec{n}|}{|\vec{d}|\,|\vec{n}|}

Angle between a line and a plane

If the line has direction \vec{d} = (l, m, n) and the plane has normal \vec{n_0} = (a, b, c), the angle \phi between the line and the plane satisfies

\sin\phi = \frac{|al + bm + cn|}{\sqrt{a^2 + b^2 + c^2}\;\sqrt{l^2 + m^2 + n^2}}

Notice the sine, not cosine. This is because you are measuring the angle from the plane (not from the normal). The formula is identical in structure to the plane-plane angle formula, but with \sin replacing \cos \u2014 reflecting the complementary relationship between the angle to the normal and the angle to the plane.

Special cases. If \vec{d} \cdot \vec{n} = 0, then \sin\phi = 0, so \phi = 0\degree \u2014 the line is parallel to the plane (or lies in it). If \vec{d} is parallel to \vec{n}, then \sin\phi = 1, so \phi = 90\degree \u2014 the line is perpendicular to the plane.

To distinguish "parallel and not in the plane" from "actually lying in the plane," check whether a point on the line satisfies the plane equation. If the line passes through (x_0, y_0, z_0) and ax_0 + by_0 + cz_0 = d, the line lies in the plane. If ax_0 + by_0 + cz_0 \neq d, the line is parallel but offset from the plane.

There is a pleasing pattern across all the angle formulas in 3D geometry. For two planes, you compare normals (both perpendicular to their planes) and get \cos\theta. For a line and a plane, you compare a direction (in the line) with a normal (perpendicular to the plane), and the complementary relationship gives \sin\phi. For two lines, you compare directions (both along their lines) and get \cos\theta again. The same dot-product computation underlies all three \u2014 only the final trigonometric function changes depending on what you are comparing.

Angle between a line and a planeA plane with a line piercing through it at an angle. The normal vector n is perpendicular to the plane. The angle alpha between the line's direction d and the normal is marked. The angle phi between the line and the plane itself is 90 degrees minus alpha. d\u20d7 n\u20d7 projection \u03b1 \u03c6 \u03c6 = 90\u00b0 \u2212 \u03b1
A line with direction $\vec{d}$ meets a plane at angle $\phi$. The angle $\alpha$ between $\vec{d}$ and the normal $\vec{n}$ satisfies $\phi = 90\degree - \alpha$. This is why the line-plane angle uses $\sin$ instead of $\cos$.

Worked examples

Example 1: Angle between two planes

Problem. Find the angle between \pi_1: 2x + y - z = 3 and \pi_2: x - y + 2z = 5.

Step 1. Read off the normals.

\vec{n_1} = (2, 1, -1), \quad \vec{n_2} = (1, -1, 2)

Why: in ax + by + cz = d, the triple (a, b, c) is the normal vector.

Step 2. Compute the dot product \vec{n_1} \cdot \vec{n_2}.

2(1) + 1(-1) + (-1)(2) = 2 - 1 - 2 = -1

Why: the dot product goes into the angle formula. Its sign doesn't matter since you take the absolute value.

Step 3. Compute the magnitudes.

|\vec{n_1}| = \sqrt{4 + 1 + 1} = \sqrt{6}, \quad |\vec{n_2}| = \sqrt{1 + 1 + 4} = \sqrt{6}

Why: the magnitudes go in the denominator of the cosine formula.

Step 4. Apply the formula.

\cos\theta = \frac{|-1|}{\sqrt{6} \cdot \sqrt{6}} = \frac{1}{6}
\theta = \cos^{-1}\left(\frac{1}{6}\right) \approx 80.4\degree

Why: the absolute value ensures you get the acute angle. Since \cos\theta = 1/6 is close to zero, the angle is close to 90\degree.

Result: The angle between the planes is \cos^{-1}(1/6) \approx 80.4\degree.

A 2D cross-section (setting $z = 0$): the traces of the two planes are $2x + y = 3$ (black) and $x - y = 5$ (red). The lines meet at a steep angle, consistent with $\theta \approx 80.4\degree$. The 3D dihedral angle matches what these 2D traces suggest.

The planes are nearly perpendicular. The dot product \vec{n_1} \cdot \vec{n_2} = -1 is close to zero (relative to the magnitudes), which is why the angle is close to 90\degree. If it were exactly zero, the planes would be perfectly perpendicular.

Example 2: Angle between a line and a plane

Problem. Find the angle between the line \dfrac{x - 1}{2} = \dfrac{y + 1}{1} = \dfrac{z - 3}{-2} and the plane 3x + 4y - 12z = 7.

Step 1. Extract the direction and normal.

The line has direction \vec{d} = (2, 1, -2). The plane has normal \vec{n} = (3, 4, -12).

Why: the denominators of the symmetric form give the direction ratios; the plane coefficients give the normal.

Step 2. Compute the dot product \vec{d} \cdot \vec{n}.

2(3) + 1(4) + (-2)(-12) = 6 + 4 + 24 = 34

Why: this goes into the sine formula (not cosine \u2014 the line-plane angle uses sine).

Step 3. Compute the magnitudes.

|\vec{d}| = \sqrt{4 + 1 + 4} = \sqrt{9} = 3, \quad |\vec{n}| = \sqrt{9 + 16 + 144} = \sqrt{169} = 13

Why: these are the denominators in the formula. Clean squares \u2014 the numbers were chosen to make the arithmetic pleasant.

Step 4. Apply the formula.

\sin\phi = \frac{|34|}{3 \times 13} = \frac{34}{39}
\phi = \sin^{-1}\left(\frac{34}{39}\right) \approx 60.6\degree

Why: 34/39 is close to 1, so the line is nearly perpendicular to the plane.

Result: The angle between the line and the plane is \sin^{-1}(34/39) \approx 60.6\degree.

Line making a 60.6 degree angle with a planeA line piercing through a plane at about 60 degrees. The angle phi between the line and the plane surface is marked, as well as the complementary angle alpha between the line and the normal. line n\u20d7 shadow \u03c6 \u2248 61\u00b0
The line enters the plane at a steep angle of about $61\degree$. Its shadow (the projection onto the plane) is much shorter than the line itself, which is what a large $\phi$ means \u2014 the line is nearly standing upright relative to the plane.

A line-plane angle of about 61\degree is steep. The line is roughly two-thirds of the way between lying flat in the plane (0\degree) and standing perpendicular to it (90\degree).

Common confusions

Going deeper

If you came here for the four formulas and the worked examples, you have them \u2014 you can stop here. What follows is for readers who want to see the algebra behind the line of intersection in full generality, and a brief look at the three-plane system.

The line of intersection in parametric form

Given two planes \vec{n_1} \cdot \vec{r} = d_1 and \vec{n_2} \cdot \vec{r} = d_2, the direction of the intersection line is \vec{d} = \vec{n_1} \times \vec{n_2}. But finding a specific point on the line requires solving a 2 \times 3 system, and the cleanest general recipe is worth writing out.

Set one coordinate to zero \u2014 but which one? Choose the coordinate whose component in \vec{d} is largest in absolute value (this avoids degenerate cases where the line happens to be parallel to the plane z = 0). If the largest component of \vec{d} is the z-component, set z = 0 and solve:

a_1 x + b_1 y = d_1
a_2 x + b_2 y = d_2

By Cramer's rule:

x = \frac{d_1 b_2 - d_2 b_1}{a_1 b_2 - a_2 b_1}, \qquad y = \frac{a_1 d_2 - a_2 d_1}{a_1 b_2 - a_2 b_1}

The denominator a_1 b_2 - a_2 b_1 is the z-component of \vec{n_1} \times \vec{n_2} \u2014 which is nonzero precisely because you chose the largest component. This gives you the point (x_0, y_0, 0), and the line is \vec{r} = (x_0, y_0, 0) + t\,\vec{d}.

When three planes meet at a point

Two planes intersect in a line. Add a third plane, and (generically) you get a single point. The system

a_1 x + b_1 y + c_1 z = d_1
a_2 x + b_2 y + c_2 z = d_2
a_3 x + b_3 y + c_3 z = d_3

has a unique solution when the determinant of the coefficient matrix is nonzero:

\Delta = \begin{vmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{vmatrix} \neq 0

Geometrically, \Delta \neq 0 means the three normals are linearly independent \u2014 none of them can be written as a combination of the other two. When \Delta = 0, the three planes might intersect in a line (if they share a common direction) or might have no common point at all (if they form a triangular prism pattern). The determinant is doing the same job here that the cross product does for two planes: detecting when the geometric data is degenerate.

The dihedral angle via the cross product

There is an alternative formula for the angle between two planes using the cross product instead of the dot product:

\sin\theta = \frac{|\vec{n_1} \times \vec{n_2}|}{|\vec{n_1}|\,|\vec{n_2}|}

This gives the same angle as the dot-product formula (since \sin^2\theta + \cos^2\theta = 1). In practice the dot-product version is faster because computing a dot product takes three multiplications and two additions, while a cross product takes six multiplications and three subtractions, plus a magnitude computation. But the cross-product version is occasionally more convenient when you already have \vec{n_1} \times \vec{n_2} computed (for instance, because you also need the line of intersection).

Where this leads next

You now know how planes relate to each other and to lines. The natural continuations: