Day 1
Today I did some poking around at my isometric arc calculator. The 'horizontal_plane' function can generate arcs in the x-z plane, but the radii are fixed pointing vertically and horizontally - that is, 45° (in the isometric world; it's 30° in the visual plane) off from the axes. I intend to replace it, so I made this test case of basic features with the old function to serve as a baseline.
I figured that my 'cplane' function (I've forgotten what the 'c' stood for), being able to generate arcs in any orientation as long as one of the radii lives on the x-z plane, could be tweaked to fully replace hplane pretty easily. I now know that it won't be so simple.
While cplane can replace horizontal_plane when the radii form a circle, as soon as we enter the world of ellipses, something is broken. Fourths of ellipses look fine in the x-y and y-z planes, or really any vertical orientation, but as soon as I put them horizontal into the x-z plane, they break.
I'll tackle that tomorrow.
As a parting gift, I give you the one-liner that is the horizontal_plane function:
return 'a' + rx * Math.sqrt(1.5) + ' ' + ry * Math.sqrt(0.5) + ' 0 0 ' + sweep_flag + ' ' + (Math.cos(30 * Math.PI/180) * (dx - dz)) + ' ' + (dy + (Math.sin(30 * Math.PI/180) * (dx + dz)))
Behavior if dy != 0 is... undefined. It's very limited, and that's the reason why I'm trying to replace it.