# Find if three points in 3-dimensional space are collinear

Find if the points joining $A=(6,7,1), B=(2,-3,1)$ and $C=(4,-5,0)$ are collinear.

How to determine collinearity in three dimensions? In two dimensions, one can compare the slopes of segments $AB$ and $BC$: if they are equal, $ABC$ are collinear. This doesn't work in 3D.

• Hint If the points lie on a straight line, then the slope between any two of the points will be the same. – Daryl Oct 7 '12 at 6:08
• No, the line through $A$ and $B$ has $z=1$. – Yves Daoust Mar 14 '15 at 13:35

## 9 Answers

Method 1:

Point $A$ and point $B$ ($A \ne B$) determine a line. You can find its equation. See if the coordinates of point C fits the equation. If so, A B and C are colinear, or else, no.

Method 2:

Point $A$, $B$ and $C$ determine two vectors $\overrightarrow{AB}$ and $\overrightarrow{AC}$. Suppose the latter isn't zero vector, see if there is a constant $\lambda$ that allows $\overrightarrow{AB}=\lambda \overrightarrow{AC}$.

Other properties if $A$, $B$ and $C$ are colinear:

$$\left| \frac{\overrightarrow{AB} \cdot \overrightarrow{AC}}{\left|\overrightarrow{AB}\right|\cdot\left|\overrightarrow{AC}\right|} \right| = 1$$:\

$$\overrightarrow{AB}\times\overrightarrow{AC} = \overrightarrow{0}$$

Also, two ways to write the equation of a line in 3D:

$$\frac{x-x_0}{a}=\frac{y-y_0}{b}=\frac{z-z_0}{c}$$

where $(x_0,y_0,z_0)$ is a point on the line and $(a,b,c)$ is the direction vector of the line, provided that $abc\ne 0$.

\begin{align} x&=x_0+at,\\ y&=y_0+bt,\\ z&=z_0+ct. \end{align}

All that remains is calculation.

Hint $A,B,C$ are colinear if and only if the largest of the lenghts of $AB, AC, BC$ is equal to the sum of the other two.

• can you explain why this is so? – tmsimont Jun 12 '15 at 2:33
• @tmsimont $\Rightarrow$ is easy: the point in the middle breaks the long segment into two small pieces.... $\Leftarrow$ Assume by contradiction they are not colinear, then they form a triangle and the condition contradicts the triangle inequality.... – N. S. Jun 12 '15 at 2:49
• @OishikaChaudhury No they cannot... If they are NOT colinear, then they don't add up by the triangle inequality. – N. S. Sep 6 '19 at 14:13
• @OishikaChaudhury The point is that $AB, AC, BC$ cannot be arbitrary valuesthey cannot be for example $1,1$ and $3$... – N. S. Sep 6 '19 at 18:26
• @N.S.I understand that here they do because the point names are specified. But if you were given three arbitrary points, where you don't know which one is A,B or C then it could be the case that two of those might add up to give the third value but it may not always be true. – user681443 Sep 6 '19 at 19:49

We have $\overrightarrow{AB}=(-4,-10,0)$ and $\overrightarrow{AC}=(-2,-12,-1)$ . Therefore cross product of two vectors AB and AC is $\overrightarrow{AB}\times\overrightarrow{AC}=(10, -4, 28)$ . This vector is different from vector $(0,0,0)$. So, the given points are not co-linear.

The following answer involves affine span, which is very intuitive.

Result: Let $p_1,p_2,p_3\in \mathbb{R}^3$. Then, the three points are collinear if and only if the following $4\times 3$ matrix is column rank deficient: \begin{align} \left[ \begin{array}{ccc} p_1 & p_2 & p_3\\ 1 & 1 & 1\\ \end{array} \right]\in\mathbb{R}^{4\times 3} \end{align}

Explanation: The line passing through $p_1,p_2$ is the affine span of the two points. The third point $p_3$ is collinear with the first two points if and only if it is in the affine span of $p_1,p_2$, or in other words, the three points are affine dependent, which means we can find $a_1+a_2+a_3=0$ such that $$a_1p_1+a_2p_2+a_3p_3=0$$ The two equations can be written in a matrix form as \begin{align} \left[ \begin{array}{ccc} p_1 & p_2 & p_3\\ 1 & 1 & 1\\ \end{array} \right] \left[ \begin{array}{c} a_1\\ a_2\\ a_3\\ \end{array} \right]=0 \end{align} which means the matrix at the top is column rank deficient.

Generalization:

• Note that the affine span of two points (that are not coincide) is the line passing through the points; the affine span of three points (that are not collinear) is the plane passing through the three points; the affine span of four points (that are not coplanar) is the entire three-dimensional space.

• It can be similarly used to determine if four points are on the same plane in 3D because the plane determined by three points is the affine span space of the three points. If the fourth point is in the affine span, then it is on the same plane. In particular, the four points $p_1,p_2,p_3,p_4\in\mathbb{R}^3$ are on the same plane if and only if the following $4\times4$ matrix is column rank deficient (i.e., singular):

\begin{align} \left[ \begin{array}{cccc} p_1 & p_2 & p_3 & p_4\\ 1 & 1 & 1 & 1\\ \end{array} \right]\in\mathbb{R}^{4\times 4} \end{align}

• If there are $n$ points in $\mathbb{R}^3$, the rank of the following matrix could give us a lot of useful information: \begin{align} A=\left[ \begin{array}{cccc} p_1 & p_2 & \dots & p_n\\ 1 & 1 & \dots & 1\\ \end{array} \right]\in\mathbb{R}^{4\times n} \end{align}

• $\mathrm{rank}(A)=4$ implies the $n$ points are not co-planar (hence they affinely span $\mathbb{R}^3$); $\mathrm{rank}(A)=3$ implies that all the points are co-planar, but they are not collinear; $\mathrm{rank}(A)=2$ implies that all the points are collinear, but they are not coincide; $\mathrm{rank}(A)=1$ implies that all the points coincide

• In summary, the rank of $A$ is the dimension of the affine space spanned by these points. Moreover, while the smallest singular value of $A$ tells how close the matrix is to rank deficiency, it also tells how close the points are to co-planar.

• Great answer. I would pick this as the answer to the question. – AFPP Aug 1 '18 at 19:28

Here's a nice degree four polynomial predicate to test collinearity of three points in any dimension $d$. Let $a = (a_1,a_2,\ldots,a_d)$, $b = (b_1,b_2,\ldots,b_d)$, and $c=(c_1,c_2,\ldots,c_d)$ be 3 points in $\mathbb{R}^d$. The points $a$, $b$, and $c$ are collinear if and only if $c = a + \lambda (b-a)$ for some unique $\lambda \in \mathbb{R}$ that is $$(a-c) + \lambda (b-a) = 0\\ (a_i-c_i) + \lambda (b_i-a_i) = 0, \forall i \in [d]\\ \sum_{i=1}^{d}\left[(a_i-c_i) + \lambda (b_i-a_i)\right]^2 = 0\\ \sum_{i=1}^{d}\left[(b_i-a_i)^2 \lambda^2 + 2(a_i-c_i)(b_i-a_i) \lambda + (a_i-c_i)^2\right] = 0\\ \underbrace{\left[\sum_{i=1}^{d}(b_i-a_i)^2\right]}_{A} \lambda^2 + \underbrace{\left[2\sum_{i=1}^{d}(a_i-c_i)(b_i-a_i)\right]}_{B} \lambda + \underbrace{\left[\sum_{i=1}^{d}(a_i-c_i)^2\right]}_{C} = 0\\ \lambda = \frac{-B \pm \sqrt{B^2-4AC}}{2A}$$

For $\lambda$ to exist and be unique $B^2-4AC$ must be zero. Hence, $a$, $b$, and $c$ are collinear if and only if

$$\left[2\sum_{i=1}^{d}(a_i-c_i)(b_i-a_i)\right]^2 - 4 \left[\sum_{i=1}^{d}(a_i-c_i)^2\right]\left[\sum_{i=1}^{d}(b_i-a_i)^2\right] = 0$$

Note that

• $A=0$ if and only if $a=b$
• if $A=0$ then $B=0$
• $B^2 - 4AC$ is never positive
• $B^2 - 4AC$ is always 0 for $d\in\{\,0,1\,\}$
• $\frac 14 \sqrt{4AC - B^2}$ is the area of the triangle $abc$.

3rd co-ordinate of first two point says that line lies in z=1. But 3rd point has z-cord=0.
So, given points are not co-linear.

@Sundar:
How you define slope in 3D?

Please correct me it I'm wrong.

• In 3D, points are collinear if $\Delta z=(a\Delta x+b\Delta y)t$,where $a$ and $b$ are some parameters and $t$ maps out the line through 3D space. E.g $(0,0,0),\,(1,1,1),\,(2,2,2)$. – Daryl Oct 7 '12 at 7:23

the points $A$ and $B$ are on the plane $z = 1.$ that implies the line $AB$ is on the plane $z = 0.$ that is all points on the line $AB$ has $z =1$ the $z$-coordinate of the point $C$ is zero, therefore it is not on the line $AB.$

If $A,B,C$ are collinear, then $AB$ and $AC$ are proportional.

$$(-4,-10,0)=\lambda(-2,-12,-1).$$

Obviously, no.

Three non-collinear points in space form a triangle. The position vector of each vertex is given by $$\vec{A}=(6,7,1)$$, $$\vec{B}=(2,−3,1)$$ and $$\vec{C}=(4,−5,0)$$. You can calculate the normal vector at each vertex, lets take vertex $$\vec{A}$$, for example:

$$\vec{N} = (\vec{B} - \vec{A}) \times (\vec{C} - \vec{A})$$

If the absolute value of the normal is zero, then the three points are aligned in space. You can convince yourself of this by looking at the expression for the module of a vector:

$$|\vec{N}| = |(\vec{B} - \vec{A}) \times (\vec{C} - \vec{A})| = |(\vec{B} - \vec{A})| \cdot |(\vec{C} - \vec{A})| \cdot sin{\space\theta}$$

where $$\theta$$ is the angle between the vectors $$(\vec{B} - \vec{A})$$ and $$(\vec{C} - \vec{A})$$, i.e. the angle of vertex $$\vec{A}$$).

This expression will be zero if $$\theta = 0, \pi$$. If, lets say, your points are aligned in the following order: $$B - A - C$$, you can see that the vertex angle at A is $$\pi$$ (180). If you calculated the normal at B or C then the angle would be zero. Either way, the normal module is zero.