Я реализую драйвер для фрезерного станка с ЧПУ, и у меня возникают проблемы с реализацией команд дуги G-кода.
Я нашел несколько реализаций алгоритма средней точки круга, но он не очень пригоден для использования как есть.
Проблема с алгоритмом круга в средней точке, как я обнаружил, заключается в том, что он двумерный и рисует все октанты одновременно, в то время как мне нужны последовательные шаги по трехмерному пути, заданному начальной, конечной и центральной точками.
Я нашел отличный многомерный эквивалент алгоритма рисования линий Брезенхэма с использованием операций с плавающей запятой. . Может быть, аналогичная вещь существует для рисования дуги?
Я мог бы изменить этот алгоритм по своей воле, подумав и поэкспериментировав, но, поскольку рисование дуги не является нерешенной проблемой, а станки с ЧПУ были созданы раньше, интересно, существует ли уже элегантное решение?