Spiral tiling with hexagons

Algorithm to place (tile) M regular-hexagonal tiles in a spiral-like way around the first tile, which serves as prototype for the tiling.
0) M = 1, corresponds to the prototype, placed with its gravity center at (0,0).
1) The other tiles are placed in layers around the first. Each layer contains 1*6 (the first), 2*6, 3*6, etc.
2) To find the place of the M-th tile, we determine the least integer n, such that M <= 1+3*n*(n+1).
3) This n determines the layer in which the tile is contained: n =ceiling( (sqrt( (4*M-1)/3)-1)/2).
4) Ceiling( double x ) is the function returning the smallest integer greater than x.
5) Having n, compute M1 = M-(1+3*n*(n-1)), which gives the number of tiles that precede the M-th
tile in the present layer.
6) q = M1/n and r = (M1 % n) (the quotient and rest of the division of M1 by n), determine the precise position of the tile in the layer.

Every tile comes from the previous one by translating through the basic translation-vector X or
a rotation of X by some angle fi, which is multiple of pi/3.

The previous algorithm finds the place of the M-th tile, in a tiling of the plane, which proceeds in a spiral-like construction. This algorithm is used in the User-Tool script [Tiling_Spiral_Hexagon.txt].