Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

Кто может объяснить кубические сплайны словами?   Найти похожие ветки 

 
Каникулы   (2007-07-22 02:52) [0]

Вот описание: http://mathworld.wolfram.com/CubicSpline.html
У нас пять точек, мы их плавно соединяем линией.

Кто может объяснить как из конкретных пяти точек вычисляются промежуточные точки, и почему именно так?


 
Однокамушкин   (2007-07-22 07:03) [1]

Всё очень просто: на каждом участке между парой последовательных точек функция задаётся многочленом третьей степени... Если у нас N точек, то таких многочленов будет N-1, в каждом по 4 неизвестных коэффициента, т.е. всего 4*(N-1) неизвестных... Во-первых, записываем условия, что на концах отрезков значения полиномиальных функций должны совпадать с заданными точками - это даёт нам 2*(N-1) уравнений... Потом записываем условия, что во всех точках, где сходятся два полинома, должны совпадать их первая и вторая производные... Таких точек N-2 (исключаются концевые), это даёт нам ещё 2*(N-2) уравнений, т.е. всего их будет 4*(N-1)-2... Оставшиеся два уравнения выбираем из условия, что вторая производная в самой левой и в самой правой точках равна нулю - получаем систему 4*(N-1) линейных уравнений с 4*(N-1) неизвестными, которую надо решить... Матрица этой системы будет трёхдиагональной, т.е. числа, отличные от 0, будут стоять только на главной диагонали и на соседних с ней диагональных линиях... Для таких систем существуют специальные методы решения, которые и дают коэффициенты многочленов


 
Каникулы   (2007-07-23 03:43) [2]


> Однокамушкин   (22.07.07 07:03) [1]


К сожалению, если человеку дали пять точек, то по такому объяснению он не сможет ничего построить.


 
Zeqfreed ©   (2007-07-23 07:22) [3]

Могу только подсказать, как построить кривую Безье по данным точкам.
На википедии все подробно в картинках расписано: http://en.wikipedia.org/wiki/Bézier_curve
У меня ушло где-то 10-15 минут, чтобы вывести через OpenGL кривую через четыре точки :)


 
Каникулы   (2007-07-23 07:46) [4]


> Zeqfreed ©   (23.07.07 07:22) [3]
>
> Могу только подсказать, как построить кривую Безье по данным
> точкам.
> На википедии все подробно в картинках расписано: http://en.
> wikipedia.org/wiki/Bézier_curve


А ты вообще не можешь отличить кубичиские сплайны от сплайнов Безье.
Позор!


 
Однокамушкин   (2007-07-23 08:25) [5]


> Каникулы   (23.07.07 03:43) [2]
> К сожалению, если человеку дали пять точек, то по такому
> объяснению он не сможет ничего построить.

От человека зависит... первый человек, который построил сплайн, вообще не имел даже такого объяснения - и ничего, справился... А вообще, найти информацию по сплайнам через яндекс - делать нечего, остаётся только удивляться, почему вы этого до сих пор не сделали...


 
Каникулы   (2007-08-01 01:20) [6]

Вот видишь объяснение?


> http://en.wikipedia.org/wiki/Bézier_curve


Картинки посмотрел и всё ясно. А ты, если нарисовать не можешь, то и сам не понимаешь того, что объясняешь.


 
Zeqfreed ©   (2007-08-01 01:28) [7]

> Каникулы

Феерически. Пора заканчивать каникулы.


 
Однокамушкин   (2007-08-01 09:02) [8]


> Каникулы   (01.08.07 01:20) [6]
> А ты, если нарисовать не
> можешь, то и сам не понимаешь того, что объясняешь.

Мог бы и нарисовать, просто возиться лень... По крайней мере, когда я сдавал сплайны в институте, у преподов не было сомнений, что я всё понял... А вот у тебя явно не хватило мозгов даже на то, чтобы понять, что сплайны и кривые Безье - это совершенно разные вещи...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
15-1185698792
IMHO
2007-07-29 12:46
2007.08.26
Слово о Blackberry


2-1186133109
Rumin
2007-08-03 13:25
2007.08.26
Как узнать полностью ли запустилось чужое приложение?


9-1158659677
Slavikkk
2006-09-19 13:54
2007.08.26
Автовыключение в ODE


15-1185638077
ArtemESC
2007-07-28 19:54
2007.08.26
Опрос


15-1185349549
gn
2007-07-25 11:45
2007.08.26
Задачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский