Integrate rectangular and circular representations more?
The choice of rectangular/circular representation could come from an external object that is passed in the initialization of the drawer. Then, from the gui we can control for any view if we want it rectangular or circular.
The subclasses of DrawerRect and DrawerCirc are almost identical. As is the way we draw things in general for rect vs circ.
This points to an abstraction that could combine both and make the development of new features appear instantly for both representations (in addition to being less code and so on).
I didn't find a way that was satisfactory enough, in the sense that the extra complexity of the abstraction I had in mind didn't seem to justify the merge. But it's probably worth trying again.
Some differences between rectangular and circular representations:
dx -> dr dy -> r * da unlimited ys -> -pi<a<pi
More comments on the taiga card if interested (they don't fit in here!).