dr 🛠️🛰️📡🎧:blobfoxcomputer:<p>I've been spending time wondering why implementing panning/zooming on a polar <a href="https://hachyderm.io/tags/graph" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>graph</span></a> was so much more fiddly than I expected</p><p><a href="https://hachyderm.io/tags/software" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software</span></a> <a href="https://hachyderm.io/tags/engineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>engineering</span></a>: I wasn't expecting so many weird corner cases, so I reacted to them too late. If I rewrote the code, it would probably be simpler</p><p><a href="https://hachyderm.io/tags/math" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>math</span></a>: I think this is really the big one. I was talking with one of the kids and they pointed out that a panned/zoomed cartesian graph is just another cartesian graph, but a panned/zoomed polar graph isn't.</p><p>(I *think* what they mean is that pan/zoom are affine transforms in a cartesian graph. Even if the axes are sheared, this is still pretty simple. In polar coordinates this isn't true anymore. But maybe "affine" isn't what I mean or care about. Maybe it's more about self-similarity.) </p><p>If that is what's going on, I'm not sure what to do with that information.</p><p>What if I converted polar into a wrapped cartesian (i.e. cylindrical) graph, panned/zoomed, then converted back...? That probably doesn't help, since the zoombox also has to transform.</p>