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!