### Context

This theorem plays a small but important part in my projection method of a 3D
model to the screen. See the *Functional description of tree package*,
which is part of the documentation accessible from the documentation link on
the home page.

### Theorem

Let Σ and Π be two planes at a distance δ > 0, letrandq' be vectors on the Π plane and letp' be a vector which is on the same side of Π as Σ. Letp'' be the intersection of the line fromrtop' with the Σ plane.

Defineq_{α}=p' + α (q' -p') with 0 <= α < 1.

Letq'' be the intersection of the line fromrtoq_{α}with the Σ plane.

Thenq'' -p'' = c (q' -r) for some c >= 0.

### Proof

Consider an orthonormal base such that (x, y, z) = (x, y, -δ) for the Π plane and (x, y, z) = (x, y, 0) for the Σ plane.

Let δ_{p} be the distance that we have to travel to get from
the Σ plane to **p**' so δ_{p} can be negative but at
least δ_{p} > - δ.

Since **p**'' = **p**' + λ (**r** - **p**') is in the
Σ plane, taking the z coordinates:

δ_{p} + λ (-δ - δ_{p}) = 0 so
λ = δ_{p} / (δ + δ_{p}). It follows
that **p**'' = **p**' + δ_{p} / (δ +
δ_{p}) (**r** - **p**').

Consider **q**_{α} = **p**' + α (**q**' -
**p**'). We search **q**'' = **q**_{α} + λ
(**r** - **q**_{α}) in the Σ plane, or (**p**' +
α (**q**' - **p**')) + λ (**r** - (**p**' + α
(**q**' - **p**'))) in the Σ plane. Again, taking the z
coordinates:

(δ_{p} + α (-δ - δ_{p})) + λ
(-δ - (δ_{p} + α (-δ - δ_{p})))
= 0 so λ = (δ_{p} - α (δ +
δ_{p})) / ((1 - α) (δ + δ_{p})).

Now we can express **q**'' in terms of **p**', **q**' and **r**
using only constants and α, δ and δ_{p}. If you do
this you will find that

**q**'' = δ / (δ + δ_{p}) **p**' +

+ α δ / ((1 - α) (δ + δ_{p})) **q**'
+

+ (δ_{p} - α (δ + δ_{p})) / ((1 -
α) (δ + δ_{p})) **r**

Likewise

**p**'' = δ / (δ + δ_{p}) **p**' +

+ δ_{p} / (δ + δ_{p}) **r**

So **q**'' - **p**'' = α δ / ((1 - α) (δ +
δ_{p})) (**q**' - **r**)

which is what we set out to prove.