### 12.14.7 Inversion in space: inversion

See section 11.15.7 for inversions in the plane.

Given a point P and a real number k, the corresponding *inversion*
of a point A is the point A′ on the ray PA satisfying
PA·PA′ = k^{2}.

The inversion command takes two or three arguments. The
first argument is a point, the center of inversion; the second
argument is a real number, which is the inversion ratio. The optional
third argument is the object which is transformed.

With two arguments, inversion returns a new command which
does the inversion.

Input:

inver := inversion(point(0,0,0), 2)

then:

inver(point(1,2,-2))

returns and draws the point (2/9, 4/9, −4/9), which is the inversion
of (1,2,−2).

With a third argument of a geometric object, inversion
returns and draws the transformed object.

Input:

inversion(point(0,0,0), 2, point(1,2,-2))

returns and draws (2/9,4/9,−4/9), as above.