Кривая БезьеСамая распространненная и известная из кривых. Была придумана 60 лет назад ребятами из Рено (Безье) и Ситроен (де Кастельжо) независимо друг от друга (ох уж эти комерческие тайны), при этом является частным случаем многочленов Бернштейна, который описал их более 100 лет назад, но это не важно.
Важно, что кривая может быть (и это важно для ее понимания):
1-й степениСтроится от точки A до точки B как
P = A * (1-t) + B * t
то есть просто линейная интерполяция между двумя точками
2-й степениСтроится точками A (опорная), B (контрольная) и C (вторая опорная) как
D = A * (1-t) + B * t
E = B * (1-t) + C * t
P = D * (1-t) + E * t = (A * (1-t) + B * t) * (1-t) + (B * (1-t) + C * t) * t = A * (1-t)*(1-t) + 2 * B * t * (1-t) + C * t * t
3-й степениСтроится соответственно между 4 точками: ABCD, где AD - опорные, BC - контрольные. Формулы по аналогии сами прикиньте
Очевидны закономерности: 1. порядок на единицу меньше числа точек
2. строим отрезки которые движутся между парами точек, а потом еще раз и так до тех пор, пока не останется последний, по которому движется собственно точка, описывающая нашу кривую. То есть степеней может быть сколько душе угодно.
Собственно все - ничего сложного.
Где применяются Безье: - вся векторная графика (кроме примитивных примитивов типа квадратиков и кружочков, включая шрифты
- кривые для описания переходов, цветокоррекций, анимаций и прочих нелинейностей, где есть зависимость от параметра
- поверхности (ни разу не работал с ними)
- сглаживания/интерполяция временных данных с множеством параметров
- сами придумайте, куда еще их сунуть - например в градиенты, но о них позже напишу.
https://www.desmos.com/calculator/jfgafx5z6j