### 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).