Разделение кривой безье

Я работаю над игрой для iPhone, которая создает путь за вашим персонажем, когда вы двигаетесь (движение похоже на змею, но криволинейное с точки зрения управления). Сейчас я делаю это так: просто сохраняю все вершины, на которых побывал игрок, в массив, а затем просто рисую круг на каждой из них каждый кадр.

Вместо этого я хочу перейти к использованию кривых Безье. Я много читал о них и понимаю их довольно хорошо, но я не очень хорошо разбираюсь в математике. Я пришел к пониманию, что мне нужно использовать алгоритм ДеКастельжо для разделения кривой на определенном t, но я не нашел, какую формулу использовать и как реализовать это в коде.

Итак, на данный момент у меня есть все контрольные точки для кривой при t=1. Теперь я просто хочу получить все контрольные точки для t<1. Может ли кто-нибудь дать мне простую и понятную математическую формулу для этого или реализацию (желательно на python или objective-c). Может быть, уже есть объект, который можно использовать в iphone sdk для разделения кривых?

10
задан Jonathan Azulay 8 May 2013 в 21:31
поделиться