![]() |
|
|
![]()
|
|
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Здравствуйте, вопрос такой: есть набор точек, через которые нужно провести линию. Можно ли для этого использовать кривые Безье или только интерполяцией сплайнов?
P.S. Я вот думаю, если Безье строится по 3 точкам, то может можно взять мои две граничные точки, а третью задать самому посередине между ними. Или так не получится? Вся штука в том, что Безье у меня уже реализовано, а вот со сплайнами неохото возиться =)) Это сообщение отредактировал(а) xTr1m - 6.2.2009, 16:20 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Сформулируйте точнее условие задачи. В ее нынешней постановке решение - это ломаная, состоящая из отрезков, соединяющих соседние точки.
Если требуется получить еще и гладкую кривую, то простейшее решение - обычный интерполяционный полином. Применение сплайнов и т.п. может стать осмысленным только в том случае, если есть и другие условия. |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Да, получить нужно гладкую кривую (ну или похожую на гладкую =)) Но как мне получить полином по точкам. Функции нет, есть одни точки на плоскости.
Это сообщение отредактировал(а) xTr1m - 6.2.2009, 16:44 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Посмотрите вот здесь (нужен раздел "Определение"), это и есть решение.
|
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Картинку что то не получилось добавить =(( Тогда на словах
Это реализованная функция, и все бы хорошо, но начиная с третьей точки у меня идет какая то погрешность. В чем может быть дело? |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
В виду некоторых обстоятельств вопрос снимаю =))
Это сообщение отредактировал(а) xTr1m - 6.2.2009, 21:09 |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Все-таки не могу удержаться и не спросить. Строя график по заданным точкам полиномом Лагранжа, я заметил, что если у одной из точек координата, например, "у" сильно отличается от остальных, то график получается сильно вытянутым вверх и вниз. А есть ли метод позволяющий строить график через заданные точки, которые менее чувствителен к этому?
Добавлено @ 09:00 Вот кстати нашел в C# метод, который позволяет сделать, что я хотел. Используется при это некий "cardinal spline". А по-русски никто не назовет? =)) Это сообщение отредактировал(а) xTr1m - 7.2.2009, 10:10 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Вот видите, оказывается, у задачи были и дополнительные условия...
По-русски их обычно называют просто "сплайны" (cardinal - "основной, главный", так что буквальный перевод - что-то вроде "обычный сплайн"). |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Спасибо, что подтвердили мои догадки =))
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |