### 12.15.6 Similarity in the plane: similarity

See section 13.14.6 for similarities in space.

The similarity command rotates and scales about a given point. It takes three or four arguments.

If similarity has three arguments, they are a point (the center of rotation), a real number (the scaling ratio) and a real number (the angle of rotation). similarity returns a new command which performs the transformation.
Input:

s := similarity(i, 2, -pi/2)

then:

s(1+i)

Output:

then:

s(circle(1+i,1))

Output:

If similarity has four arguments, the first three arguments are a point and two numbers as above, and the fourth argument is a geometric object. similarity returns and draws the transformed object.
Input:

similarity(i, 2, -pi/2, 1 + i)

Output:

Input:

similarity(i, 2, -pi/2, circle(1+i,1))

Output:

Note that for a point A and numbers k and a, the command similarity(A,k,a) is the same as homothety(A,k*exp(i*a)).