Я не думаю, что md5 дает вам полный результат - так что вы не можете работать в обратном направлении, чтобы найти оригинальные вещи, которые были md5-ed
Вы не можете вычислить градиент «изгиба» (как вы так красноречиво выразились). Если вам действительно нужен градиент в такой точке (x), я бы просто усреднил градиент в (xd) и (x + d), где d - достаточно малая дельта. Это так же математически достоверно, как и любой другой простой ответ, который вы, вероятно, получите.
Например, функция:
f(x) = |x|
выдаст:
\ | /
\ | /
\ | /
\|/
----+----
, где нет градиента в начале координат (0,0). Однако усреднение градиентов при -0,0001 (градиент = -1) и +0,0001 (градиент = +1) даст вам нулевой градиент (плоская линия).
Это должно дать приличный ответ для других уравнений, которые создавать несимметричные градиенты в точках (xd) и (x + d).
Что бы я сделал, поскольку это лицензировано MIT, заключается в изменении источника, чтобы позволить линии Безье использовать этот метод +/- дельта для вычисления градиентов в прерывистых точках. Может быть, даже отправить разработчикам изменения исходного кода, если вы считаете это стоящим дополнением.
Звучит правильно. Прошло много времени с тех пор, как я смотрел на сплайны, но я почти уверен, что если функция не является непрерывной, ваш сплайн также должен быть прерывистым в тех же точках. Хотя я видел интерполяции, которые дают приблизительную кривую в такой точке ... Я проверю свои учебники, если никто другой не найдет лучшего ответа.
Но цикл - довольно хорошая попытка. Престижность вашей функции.