Захотел сделать некоторый способ проведения гладкой кривой через точки на плоскости, такой чтобы он формулировался математически наиболее просто. Оставим в стороне вопрос о том, не сделано ли это уже давно другими способами, чем тот что указан ниже. Если где-то сделано именно этим (у меня не получилось найти) - хорошо, посмотрю там результат.
Кривая задаётся функцией

, где

- линейная координата вдоль траектории кривой (можно и не ставить это обязательным условием, но тогда в уравнениях появятся лишние коэффициенты). У кривой есть мера её качества (чем численно меньше - тем больше подходит кривая):

, где

- радиус кривизны кривой в заданной точке её траектории,

- модуль второй производной функции по

, равный обратному радиусу кривизны, а

- параметр задачи, указывает насколько нам важно стремиться уменьшить полную длину кривой. В попытках получить из этого интеграла какие-то намёки на то, какой должна быть искомая кривая, проварьировал его:

, где

- функция первого порядка малости, а

- новая функция, от которой будет брать интеграл. Её аргумент

уже не равен координате вдоль траектории этой функции, он равен координате вдоль траектории исходной функции

, от точки которой смещена текущая точка функции

.
Получается (формула усложнилась т.к. модуль первой производной функции уже не равен единице, как это было изначально):

Требуется найти такую кривую

, где для любой малой

из допустимых граничными условиями выполняется неравенство

. Граничными условиями для

будет её равенство нулю в зафиксированных точках из условия задачи.
Для удобства расчётов были сделаны следующие подстановки/названия переменных:

,

, где

- единичный вектор направления траектории кривой,

- угол этого же направления. Также на функцию

наложено ограничение, которое не повлияет на итог: она должна быть направлена перпендикулярно траектории:

, и в дальнейшем используется только

(не вектор).
В итоге (если пропустить промежуточные выкладки) получается (все слагаемые второй и выше степеней

опущены):

Как видно, разница

меняет знак при смене знака

, а значит положительно определённый вариант для неё будет только в том случае, когда она строго равна нулю (а не ноль там получится из-за второго и следующих порядков

, ранее выкинутых - возможно это не совсем строгое утверждение но пока что и так сойдёт).
Итого, требуется найти такое

, проходящее через заданные точки (и, возможно, ещё с какими-то условиями), что

для любого

, удовлетворяющего граничным условиям.
Что делать дальше, не особо понятно. Подозреваю, что это какая-то простая задача.
Хотелось бы в как можно более общем виде. Но даже частные случаи непонятно как решать, например такой:

(всего две точки, первая в нуле координат, линия из неё выходит вдоль оси

, и должна попасть во вторую точку)
или такой:

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

после функций, где это и так очевидно из контекста; мне кажется что это замусорит формулы и их станет только неудобнее читать, но если это обязательно нужно то допишу)