# Sunflower Assignment

### Clarification

- Reflecting a counterclockwise-winding Fibonacci spiral arc about any line containing the spiral source-point results with a clockwise-winding spiral arc. In particular, obtain a clockwise-winding arc by reflecting the corresponding counterclockwise-winding arc about the line
*x*+*y*=0. - Let
*c*_{1},*c*_{2},... denote the circular arcs that sequentially compose a Fibonacci spiral. Set the source point of the spiral to be the**bottom right**corner of the square bounding*c*_{1}. - The last argument, ε, of the second program indicates an error bound. It is given as two integers,
*a*and*b*, such that ε =*a*/*b*. - Instead of using the CGAL free function
`rational_rotation_approximation()`to obtain a rotation the sine and cosine of the angle of which can be represented as rational numbers, you may use the`Aff_transformation_2`construct of CGAL, and in particular its constructor of approximates rotations. - Observe that both,
`rational_rotation_approximation()`and`Aff_transformation_2()`, accepts a direction, say*d*(*x*,y) as one of their arguments. Suppose that you need to rotate a point by the angle*a*= (2*Π/f_{n})*i for some i > 0.You may compute*d*= (`cos(`*a*`)`,`sin(`*a*`)`) using machine double floating-point arithmetic, and bound the error of the sine and cosine of the rotation angle with respect to the sine and cosine of the angle defined by*d*(and not with respect to the sine and cosine of*a*). - The output points should include end-points and points that split the spirals into x-monotone sub-curves. However, duplications should be avoided.
- You may assume that the constructed clockwise-winding spiral arcs are pairwise disjoint except perhaps at the origin; the same holds for the counterclockwise-winding spiral arcs.