Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Алгоритмы > Кубический сплайн


Автор: My4a4os 13.11.19, 11:50
Здравствуйте, уважаемые форумчане!!!

Сделал прогу, которая рисует кубический сплайн. Столкнулся с тем, что кубический сплайн очень чувствителен к направлению построения по оси Х (либо по возрастанию, либо по убыванию абсцисс исходных точек).
Если кто знает - подскажите, где искать или как исправить ситуацию, показанную на вложенной картинке.
(строго не судите, если задаю глупые вопросы - кубическими сплайнами заинтересовался недавно). Заранее спасибо. Spline.jpg (, : 861)

Автор: prografix 13.11.19, 13:02
У тебя в точке 1 неправильно задана производная.

Автор: MBo 13.11.19, 15:10
Как задаётся сплайн? Для таких кривых должен - параметрически X(t) и Y(t), а не как Y(X)

Автор: My4a4os 13.11.19, 19:04
MBo Сплайн задается именно Y(X). А что значит параметрически X(t) и Y(t)? Если не трудно, опишите в двух словах...

Автор: Akina 13.11.19, 19:07
Цитата My4a4os @
Сплайн задается именно Y(X)

Показанный сплайн НЕ МОЖЕТ БЫТЬ Y(X) - есть X, которым соответствует 2 разных Y на одном участке (как раз тот,Ю который "как хочется").

Автор: MBo 14.11.19, 09:58
Функциональная форма Y(X) применяется только к однозначным функциям.
В данном случае нужны две зависимости как для Y, так и для X от третьего параметра t.
Пример - окружность - X=R*Cos(t), Y=R*Sin(t)
Как выбирать параметризацию в случае абстрактной кривой - отдельная наука.
В качестве первого приближения - номер точки, или длина ломаной линии между точками.

Автор: My4a4os 15.11.19, 14:49
MBoСпасибо. Попробую реализовать.

Автор: Mikle 15.11.19, 16:27
Цитата My4a4os @
Попробую реализовать.

Нужен сплайн, проходящий через заданные точки?
Вот реализация на VB6 с исходником, может поможет:
Spline.zip (, : 242)

Автор: My4a4os 18.11.19, 15:32
MikleСпасибо! Уже изучаю(перевожу на си).

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)