Intersection of three planes

Written by Paul Bourke
October 2001

A contribution by Bruce Vaughan in the form of a Python script for the SDS/2 design software: P3D.py.


The intersection of three planes is either a point, a line, or there is no intersection (any two of the planes are parallel).

The three planes can be written as

N1 . p = d1

N2 . p = d2

N3 . p = d3

In the above and what follows, "." signifies the dot product and "*" is the cross product. The intersection point P is given by:

  d1 ( N2 * N3 ) + d2 ( N3 * N1 ) + d3 ( N1 * N2 )
P = -------------------------------------------------------------------------
  N1 . ( N2 * N3 )

The denominator is zero if N2 * N3 = 0, in other words the planes are parallel. Or if N1 is a linear combination of N2 and N3.