### 12.14.3 Reflection in space with respect to a plane, line or point: reflection symmetry

See section 11.15.3 for reflections in the plane.

The reflection command takes one or two arguments. The first
argument is a point, line or plane. The second optional argument is a
geometric object.

With one argument, reflection returns a command which
reflects an object across the point, line or plane.

Input:

r := reflection([1,1,1])

then:

r(point(1,2,4))

returns and draws the reflection of the point (1,2,4) across the
point (1,1,1); namely (1,1,1) − [(1,2,4)−(1,1,1)] = (1,0,−2).

Given a second argument of a geometric object, reflection
returns and draws the reflected object.

Input:

reflection(line([1,1,0],[-1,-3,0]),point(-1,2,4))

returns and draws the reflection of the point (−1,2,4) across the
line through (1,1,0) and (−1,−3,0); namely (16/5,3/5,−4).