Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

Вопрос по сплайнам   Найти похожие ветки 

 
boa_kaa ©   (2007-10-14 23:12) [0]

Здрасте!

Кто-нибудь может подсказать тип сплайна, который бы подходил для сглаживания изолиний. Требование к нему одно: чтобы проходил через все заданные точки. Пока что приходится пользовать В-сплайн, т.к. он дает нормальное сглаживание и не выписывает обратные кренделя (петли). Устраивает полностью, но нужно бы еще и чтобы проходил через точки, а не описывал их.

Надежда возлагалась на Катмулла-Рома, но он при резких поворотах дает петли:
http://www.npoplz.ru/img/Isolines_points99_triangles160_CRSpline.tif (47.3 КБ)

А вот сглаживание уже В-сплайном:
http://www.npoplz.ru/img/Isolines_points99_triangles160_BSpline.tif (45.1 КБ)

До сглаживания было такое вот безобразие:
http://www.npoplz.ru/img/Isolines_points99_triangles160_no_smooth.tif (46.8 КБ)


 
TUser ©   (2007-10-14 23:35) [1]

Не шибко четко сформулирована задача, но, насколько я понял, тебе надо провенсти линию по точкам. Аппроксимируй их множеством крибых Безье, имхо.


 
boa_kaa ©   (2007-10-15 00:46) [2]


> TUser ©   (14.10.07 23:35) [1]

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


 
MBo ©   (2007-10-15 05:16) [3]

>но нужно бы еще и чтобы проходил через точки, а не описывал их.
кратность узлов, через которые должен проходить B-сплайн, надо увеличить


 
ShaggyDoc ©   (2007-10-15 06:40) [4]

В AutoCAD мы делаем изолинии (горизонтали, соединяющие точки с одинаковыми отметками) примитивом "полилиния". Можно и сплайном (есть такой примитив) но это неудобно - линия не пройдет точно через заданные точки. Полилинию на лету можно "гладить" несколькими видами сплайнов или дугами. Последний вариант наиболее оптимальный - результирующий примитив проходит точно через заданные точки. Но точек должно быть больше.


 
boa_kaa ©   (2007-10-15 12:16) [5]


> MBo ©   (15.10.07 05:16) [3]

Это приблизит сплайн к узлам, но не даст пройти через них все равно.
Мне просто хотелось бы иметь 3 альтернативы:
1. Построение несглаженных изолиний (реализовано).
2. Построение сглаженных В-сплайном (реализовано). Здесь тоже нужно пропеть дифирамбы, т.к. линейная интерполяция суть яд в некоторых случаях, т.к. учитывает расстояние только между соседними точками, не обращая внимание на ближайшее окружение. Данный вид сглаживания по-сути дает нелинейную интерполяцию.
3. Построение сглаженных изолиний, но уже сплайном, четко проходящим через точки.



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

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
2-1193118690
Quart
2007-10-23 09:51
2007.11.18
INSERT INTO


1-1188385713
Андрей Пл
2007-08-29 15:08
2007.11.18
Метод Terminate в дополнительного потока


4-1178696117
AXEL65
2007-05-09 11:35
2007.11.18
Выгрузка dll из самой себя


15-1192367870
Finder
2007-10-14 17:17
2007.11.18
Существует ли вообще - русификатор Delphi 2006?


15-1192375543
исследователь
2007-10-14 19:25
2007.11.18
Размер поля БД