# Squared distance of point, line or plane to origin in GA

## Old-school way

It's not hard to find the distance of a point *p* (represented as a position vector **p**) from the origin : simply compute norm(**p**).

Neither is it hard to find the distance of a plane P (represented in [**N** : -*d*] form) from the origin: it's simply *d*.

However, according to the information at this link, the process of finding the distance of a line represented homogeneously (in Plücker coordinates) from the origin is more involved.

For a line represented as {**U** : **V**}, (with **U** the line's 3-d direction vector and **V** the line's 3-d moment vector), its *squared *distance from the origin is

⟨**V** , **V**⟩ / ⟨**U** , **U**⟩

so the distance of a Plücker line to the origin is the square root of that.

- These techniques offer no consistent methodology for determining the minimum distance of a geometric entity to the origin. We have one way of dealing with points, another way of dealing with planes, and yet another way of dealing with lines.

## New-school way

Fortunately, GA provides a consistent framework for finding the (squared) distance of a *k*-flat **X** to the origin. Define

*d*_{X, O}^{2}
= **||** supp(**X**) **||**
^{2}
, where supp(**X**) ∈ R
^{N}
returns the *support vector* of **X** .

Recall that

**e**_{N + 1}^{-1}≡**e**_{N + 1}≡ [0 : 1] , i.e., the origin of P_{N + 1}dir(

**X**) = (**e**_{N + 1}^{-1}⌋**X**) , giving the direction of*k*-flat**X**.

Define

moment(

**X**) as**e**_{N + 1}^{-1}⌋ (**e**_{N + 1}∧**X**) , giving the*moment*of*k*-flat**X**.supp(

**X**) is defined as moment(**X**) / dir(**X**), with / denoting geometric division if dir(**X**) is not scalar.

Compare this with the method given further above for the finding squared distance of Plücker line to origin.

Summary:

- the squared distance of a
*k*-flat to the origin is equal to the square of its support vector.