Orthogonal projection: projection

### 11.15.8 Orthogonal projection: projection

The projection command takes one or two arguments.

If projection has one argument, it is a geometric object. projection returns a new command which projects points onto the object.
Input:

p1 := projection(line(-1,i))

then:

p1(i+1)

Output:

Input:

p2 := projection(circle(-1,1))

then:

p2(i)

Output:

If projection has two arguments, the first arguments is a geometric object as above, and the second argument is a point. projection returns and draws the projection of the point onto the object.
Input:

projection(line(-1, i), 1+i)

Output:

Input:

projection(circle(-1,1), i)

Output: