Как-то после обеда прочитал статью на gamedev.ru, а потом в комментариях к статье нашел другую и неожиданно обрел знание: как работают кривая Безье и в чем собственно суть. И чтобы не забыть, сделал эту запись в блоге.
Вообще я сразу теряюсь, когда в статье наталкиваюсь на математические формулы и сразу пытаюсь их пролистать, а тут решил вникнуть и внезапно осенило!
Линейная кривая
Самая простая кривая Безье называется «линейная кривая», хотя она не кривая, а очень даже прямая. Это банальная линейная интерполяция от точки
до
. Формула этой кривой вот такая: 
Параметр
у нас живет в пределах от нуля до единицы, заместо
подставляем
или
и получаем искомое значение.
Программистами используется та же самая формула, только в профиль (убирается лишнее умножение): 
Квадратичная кривая
Следующая по сложности идет «квадратичная кривая». Она строится по трем точкам
,
и
. Оказывается, она представляет собой линейную интерполяцию двух простых кривых Безье по точками P0, P1 и P1, P2 соответственно. На мой взгляд звучит ужасно сложно, в голове рисуются страшные формулы, но на деле выходит довольно просто.
Формула первой кривой: 
Формула второй кривой: 
Линейная интерполяция: 
После замены A и B получается такой монстр: 
Раскрываем, сокращаем, упрощаем: 
Касательная к квадратичной кривой
Если записать по науке, то формула выше такая: 
Чтобы найти касательную к кривой Безье в любой точке t, надо вычислить производную этой функции (подсмотрено в википедии): 
Для чего может пригодится касательная:
- поворачиваем касательную на 90 градусов, делим на длину и получаем нормаль к кривой Безье в точке t
- берем некий шаг
, вычисляем касательную для каждой t от нуля до единицы с шагом
, суммируем длину этих касательных, умноженную на
, получаем общую длину кривой Безье, точность которой зависит от 
Если я ничего не напутал, то формула для вычисления длины выглядит вот так:

Затем можно рассмотреть «кубическую кривую», но это уж как-нибудь сами. Вот собственно и все, чем хотел поделиться… Не судите строго.