Math in Unity : Planes (Part I)

While the line is represented by a point and a Vector, the plane is represented by a point and two Vectors.

If for example we have a Point A and two Vectors, v and u, to find the Point B in any point of the plane is

B = A + v*s + u*t

Now, the parametric form of the plane is

P(s, t) = A + v*s + u*t

Let’s start from the formula to make a code example, and you will see that it will be less complex than it seems.

Let’s take a first example to better understand:
we say that our Point A is (1, 2, 3),
the Vector v is (0, 2, 1)
and the Vector u is (3, 4, 2).
If we apply the formula

P(s, t) = A + v*s + u*t = (1, 2, 3) + (0s, 2s, 1s) + (3t, 4t, 2t) =(1 + 3t, 2 + 2s + 4t, 3 + 1s + 2t)

As always, the formulas can seem very complicated.
Let’s test a simple code to see how to make a Plane from scratch!

First we create a simple scene with three cubes representing the point and the two Vectors

Set the scene, we create a new script called Plane.

Inside it, we create five variables, three for points and two that represent two Vectors.
And we also create a Constructor, since a plane, as we said, is made up of a point and two Vectors.

In the constructor, I created three distinct points, and assigned v and u respectively to the distance between B - A and C - A
In this way we are setting A as the origin point and AB and AC as Vectors.

Now comes the part that interests us: applying the formula of the Plane.

We create the method, PlaneFormula(), and pass the two parameters we need: s and t.

Inside, what we’re going to do is very simple:
P (s, t) = A + v * s + u * t

Translated into code

As we see, the formula is literally copied and pasted on each axis.

In the next article we finish the Plane!

Always in love with programming, even if late (I'm already 39 years old) I decided to follow my dream! We will see how far my passion will take me!

More from Matteo Lo Piccolo

Always in love with programming, even if late (I'm already 39 years old) I decided to follow my dream! We will see how far my passion will take me!