Shearing

Shearing is more complicated than shifting or scaling. The function
shear() takes six real arguments.
If p is a Point, then p.shear(a, b, c, d, e, f) sets
x_p to x_p + ay_p + bz_p, y_p to
y_p + cx_p + dz_p, and
z_p to z_p + ex_p + fy_p.
In this way, each coordinate of a Point is modified based on the
values of the other two coordinates, whereby the influence of the
other coordinates on the new value is weighted according to the
arguments.