Кривые
, Прорисовка кривых линий
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [18.97.9.174] |
|
|
правила раздела Алгоритмы

Кривые
, Прорисовка кривых линий
|
Сообщ.
#1
,
|
|
|
|
Кто подскажет алгоритм прорисовки кривых линий между точками?
|
|
Сообщ.
#2
,
|
|
|
|
Метод сплайнов. Слышал?
|
|
Сообщ.
#3
,
|
|||
|
|
Нет, можно подробнее, или линки. |
|
Сообщ.
#4
,
|
|||||
|
|
www.google.com |
|
Сообщ.
#5
,
|
|
|
|
Задача еще раз.
Есть N точек с координатами X и Y. Надо провести между ними плавную кривую. Так? |
|
Сообщ.
#6
,
|
|
|
|
Хм. Интересная тема.
Кто разбирался - расскажите, плиз. Тут тоже интересно послушать будет. |
|
Сообщ.
#7
,
|
|||
|
|
Вот например такой вариант: Есть некоторая последовательность точек, рассмотрим четыре точки идущие подряд в этой последовательности: v0, v1, v2, v3. Теперь просто вызвав эту функцию с х от 0 до 1, получим плавную кривую между точками v1 и v2.
|
|
Сообщ.
#8
,
|
|
|
|
Я лишь распишу проблему с математической точки зрения. Раздел "Алгоритмы" позволяет это сделать. А там уже на усмотрение - на каком языке это реализовать.
Итак мы имеем N точек. Чтоьы не стало скучно от всех этих математических выкладок примем, что N=3. У каждой точки координаты V1,2,3(x,y) . Итак пусть это точки v1(3,5), v2(4,8) и v3(6,12). С математической точки зрения функция должна 1. Быть определенной во всех точках; 2. Не терпеть разрывов 3. Быть плавной. Возьмем уравнение порядка N-1, т.е. 2-го порядка, удовлетворяющего поставленным условиям. Y = AX^2 + BX + C Составим три уравнения для трех точек, подставив координаты X и Y для каждой точки. 9A + 3B + C = 5 16A + 4B + C = 8 36A + 6B + C = 12 Решаем эту систему уравнений, получаем коэффициенты. A = - 0.3333 B = 5.3333 C = - 8 Строим график, видим - он плавный. ![]() Если точек было больше, то берем по три точки , лучше с перекрытием хотя бы в одну. Кстати предложенный albom-ом метод кусочно трилинейной интерполяции как раз и есть реализация выше описанного. А алгоритмическую часть я попытался отразить. |
|
Сообщ.
#9
,
|
|
|
|
|
Сообщ.
#10
,
|
|
|
|
Zipo
А ежели ищешь методы попроще, то глянь сюда: http://astronomy.swin.edu.au/~pbourke/anal.../interpolation/ |
|
Сообщ.
#11
,
|
|
|
|
Привет всем. Генетический алгоритм - РУЛЬ.
|
|
Сообщ.
#12
,
|
|
|
|
спасибо за инфу(даже при том, что не Я о ней просил
)К слову - через гугль за месяй поиска нашёл кучу ссылок, но ничего информативного |
|
Сообщ.
#14
,
|
|
|
|
Romtek, а можно тут "спасибо" сказать?
Или это как akel будет удалено? |
|
Сообщ.
#15
,
|
|
|
|
простите, "akel" - это типа "флуд"
У меня KeyboardNinja стоиТ, а он такого слова не знает ![]() [off] Это уже точно флуд - можно удалять [/off] |