I would adapt a Bresenham line algorithm for this one, as it is simple and fast and makes the decision of what axis moves. At the start it calculates how many steps each axis needs to reach the target and selects the larger one as the driver and the second as driven axis. Then it just updates its counters on each step of the driver axis and if the counter goes above zero on the driven axis, the driven axis steps and resets its counter. Smooth, linear and always "on the line" :) This can be expanded easily to how many axes you want, just needs simple integer counters for each one.
Not sure if I completely understand your question, but please do ask if I left out something. As I explained, the Bresenham line algorithm can be used to get all the points on the line between points A & B. Then it would be just a matter of converting those points from Cartesian to polar coordinates and defining a feedrate between the Cartesian points.
I would adapt a Bresenham line algorithm for this one, as it is simple and fast and makes the decision of what axis moves. At the start it calculates how many steps each axis needs to reach the target and selects the larger one as the driver and the second as driven axis. Then it just updates its counters on each step of the driver axis and if the counter goes above zero on the driven axis, the driven axis steps and resets its counter. Smooth, linear and always "on the line" :) This can be expanded easily to how many axes you want, just needs simple integer counters for each one.
What would be your adaption strategy?
Not sure if I completely understand your question, but please do ask if I left out something. As I explained, the Bresenham line algorithm can be used to get all the points on the line between points A & B. Then it would be just a matter of converting those points from Cartesian to polar coordinates and defining a feedrate between the Cartesian points.