What is the homogenous parametric equation of a line given two points?

232 Views Asked by At

In the case we have two non-homogeneous points $\vec{A}=(x_1,x_2)$ and $\vec{B}=(y_1,y_2)$, we can write the vector equation of the line with a real parameter $\lambda$:

$r: \quad \vec{X}=\vec{A}+\lambda(\vec{B}-\vec{A})$

Or

$r: \quad \vec{X}=(1-\lambda)\vec{A}+\lambda\vec{B}$

Here the coefficients of $\vec{A}$ and $\vec{B}$ depend on the same parameter. Suppose know that we have two homogeneous points in the plane:

$\vec{A}=(x_1,x_2,x_0)$ $\vec{B}=(y_1,y_2,y_0)$

In this case, the vector equation of the line is:

$r: \vec{X}=\lambda\vec{A}+\mu\vec{B}$

Where $\lambda$ and $\mu$ are two real parameters. Are they indepent? How do you explain the fact we need two indepent parameters in this case? In the first we needed a point and then the difference between the points (direction) multiplied by a single parameter. Is this related to the fact that homogeneous coordinates are defined but a multiplicative constant? Since in the second equation there is no difference and the parameters are apparently independent, I don't understand what represents the direction of the line.

1

There are 1 best solutions below

1
On BEST ANSWER

Given $z \ne 0$, point $(x, y)$ is represented by $(x z, y z, z)$ in homogenous coordinates.

Because of this, in homogenous coordinates, all $(x k, y k, z k)$ for $k \in \mathbb{R}$ except $k = 0$ refer to the same point on the Euclidean plane.

Let's examine what happens when we linearly interpolate between two homogeous coordinates: $$\left[\begin{matrix} x \\ y \\ z \end{matrix}\right] = (1 - \lambda)\left[ \begin{matrix} x_1 \\ y_1 \\ z_1 \end{matrix}\right] + \lambda\left[ \begin{matrix} x_2 \\ y_2 \\ z_2 \end{matrix}\right] = \left[ \begin{matrix} (1-\lambda)x_1 + \lambda x_2 \\ (1-\lambda)y_1 + y_2 \\ (1-\lambda)z_1 + z_2 \end{matrix} \right]$$ On the Euclidean plane, this corresponds to point $$\left\lbrace ~ \begin{aligned} x^\prime &= \displaystyle \frac{ (1-\lambda)x_1 + \lambda x_2 }{ (1-\lambda)z_1 + \lambda z_2 } \\ y^\prime &= \displaystyle \frac{ (1-\lambda)y_1 + \lambda y_2 }{ (1-\lambda)z_1 + \lambda z_2 } \\ \end{aligned} \right .$$ It is no longer linear, although the points are on a straight line. But, if $z_1 z_2 \lt 0$, there is a point ($\lambda = z_1 / (z_1 - z_2)$) when the coordinates are undefined due to division by zero.

The solution is to do linear interpolation in homogenous coordinates using $$\vec{P} = (1-\lambda)\vec{A} + \lambda\mu\vec{B}$$ where $\mu$ ensures the two have the same $z$, i.e. $$\mu = \frac{A_z}{B_z}$$ so that the divisor ($z$) is constant. Note that because $\mu \ne 0$ if $\vec{A}$ and $\vec{B}$ are finite, $\vec{B}$ and $\mu\vec{B}$ refer to the same point on the Euclidean plane. If both $\vec{A}$ and $\vec{B}$ refer to points at infinity, then one can use $\mu = 1$.

(Obviously, $(1-\lambda)z + \lambda z = z$ for all $\lambda \in \mathbb{R}$.)

This way, $\lambda$ interpolates between the points linearly in both homogenous and the corresponding 2D coordinates. This works when both points are finite (both have nonzero $z$), or when both points are at infinity (both have zero $z$, in which case $\mu = 1$). This does exclude transition between finite points and points at infinity, though; but that is understandable, as this is linear interpolation.

If we use the 2D Euclidean form $\overline{p} = \overline{B} + \lambda\overline{A}$, i.e. $\vec{A}$ is the homogenous direction vector, and $\vec{B}$ is the point corresponding to $\lambda = 0$ on the line, then the form is $$\vec{P} = \mu\vec{B} + \lambda\vec{A}$$ where $\mu$ still has the same reasoning: it ensures that the Euclidean representation of the two points has sensible divisor. In this case, it is sufficient that $\vec{B}$ is finite, or both $\vec{B}$ or $\vec{A}$ refer to points at infinity. If $\vec{A}$ is a point at infinity, then $\mu = 1$ is a sensible choice; the the locus of points $\vec{P}$ is finite for all finite $\lambda \in \mathbb{R}$.