Background
I’m doing exercise 4.9 of Think Julia, which asks for a function for a polar rose using Luxor’s turtle graphics.
Difficulties
- Work out the geometric structure of the family of polar roses. The key is
to construct some auxiliary isoceles triangles and work out the angles between
them. One sees that they are parametrized by two varaibles
n
andk
.n
: number of petalsk
: petal increment- constraint:
k ≠ n ÷ 2
- Handle the case when
gcd(n, k) > 1
, i.e. more than one closed loop. - The positive
x
direction goes to the right; the positivey
direction goes down.
Attempt
- Use
ThinkJulia.Reposition(t::Turtle, x, y)
to reposition the turtle. - Use
turn(t::Turtle, θ)
to turnt
- Use
ThinkJulia.Orientation(t::Turtle, θ)
to restore the turtle’s orientation after the move.
Code
I spend three days writing and testing this function.
[Read More]