Пусть вектор контрольных точек для вашего Безье будет [b0 b1 b2 b3], а для вашего Эрмита - [h0 h1 v0 v1] (v0 и v1 - производная / касательная в точках h0 и h1). Затем мы можем использовать матричную форму, чтобы показать преобразования:
Эрмит Безье
[b0] = 1 [ 3 0 0 0] [h0]
[b1] - [ 3 0 1 0] [h1]
[b2] 3 [ 0 3 0 -1] [v0]
[b3] [ 0 3 0 0] [v1]
(это точно так же, как в ответе Нааффа выше).
Безье к Эрмиту
[h0] = [ 1 0 0 0] [b0]
[h1] [ 0 0 0 1] [b1]
[v0] [-3 3 0 0] [b2]
[v1] [ 0 0 -3 3] [b3]
Так что в матричной форме они, возможно, немного сложнее, чем нужно (в конце концов, код Нааффа был коротким и точным). Это полезно, потому что теперь мы можем очень легко выйти за пределы Эрмита.
В частности, мы можем ввести другую классическую кардинальную кубическую параметрическую кривую: кривую Кэтмалла-Рома. Он имеет контрольные точки [c_1 c0 c1 c2] (в отличие от кривых Безье, кривая проходит от второй до третьей контрольной точки, отсюда обычная нумерация от -1). Преобразования в Безье тогда:
Catmull-Rom к Безье
[b0] = 1 [ 0 6 0 0] [c_1]
[b1] - [-1 6 1 0] [c0]
[b2] 6 [ 0 1 6 -1] [c1]
[b3] [ 0 0 6 0] [c2]
Безье к Кэтмуллу-Рому
[c_1] = [ 6 -6 0 1] [b0]
[c0] [ 1 0 0 0] [b1]
[c1] [ 0 0 0 1] [b2]
[c2] [ 1 0 -6 6] [b3]
Я тоже могу сделать пару Эрмит-Катмул-Ром, но они используются редко, поскольку Безье обычно является основным представлением.