Хорошее исследование. Меня оно многому научило. Я попробовал написать свой класс для нерекурсивного преобразования кривой Безье в ломаную. Вот что у меня вышло. Кратко опишу используемые классы
TVector2D — класс вектора, в нем реализованы только те методы, которые необходимы для вычислений
TBezier2D — класс хранит управляющие точки кривой Безье
TBezierCurve2D — класс позволяет последовательно вычислять точки кривой
основной метод
bool TBezierCurve2D::vertex(TVector2D* point)
возвращает точку кривой.
getDistance — функция вычисления расстояния от точки до прямой
Я разделил код на несколько функций. Скорее всего это замедляет работу, но позволяет анализировать алгоритм. В основном код позаимствован у McSeem2. Надеюсь он на меня за это не обидится.