Pull to refresh

Comments 18

Спасибо, а не подскажете примеры где это применимо на практике?
Сразу захотелось подумать в сторону того как сделать перестановку точек чтобы выбирать минимальную длину, но следующей мыслью было — если применимо для реальной задачи. А реальную задачу как-то и не придумать.
Автоматическое проектирование, геометрическое моделирование и тд.
Конкретно я буду использовать этот алгоритм для контроля геометрических характеристик цилиндрических алюминиевых слитков на одном из российский заводов. Есть лазерные датчики, которые дают множество точек поверхности, затем по этим точкам генерируется интерполяционная поверхность.
Смотрел на картинку до ката и только потом понял, что на ней написано Habr :)
UFO just landed and posted this here
UFO just landed and posted this here
Не пробовал. После вашего комментария за 10 минут накидал реализацию, так как много информации по ним. Удивлен.
Спасибо!
Поигрался с этим алгоритмом. Вполне рабочий, легкий в реализации. Но, к моей практической задачи не подошел из-за некоторых особенностей построения сплайна. Здесь исходники.
Спасибо.
Может кто подскажет ответ на вопрос по близкой тематике?
Есть набор точек (отсчеты АЦП), расположенных на кривой, несколько напоминающей вершинку синусоиды (но крутизна переднего и заднего фронтов разная). Хотелось бы интерполировать эту кривую и найти ее экстремум.
В сторону каких алгоритмов смотреть с учетом ограниченных вычислительных ресурсов (предполагается использование в микроконтроллере)?
Спасибо еще раз.
Попробую
А вы не подскажете, что вообще стоит почитать с точки зрения отрисовки кривых?
Интересуют не сколько конкретные алгоритмы, сколько база.
Хочется разобраться, чтобы понимать, что вообще происходит в этих алгоритмах и потом дорабатывать и писать новые под свои нужды.

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

И ещё не могу понять, как отрисовывать кривые Безье произвольной ширины со сглаживанием контуров.
Лаконично и по делу! Спасибо, запомнил на будущее, может пригодится.
Как раз на днях искал, что-то подобное про «рисование плавных траекторий». Увидел нечаянно это и осенило — похоже это что-то близкое к тому, что мне надо. Сам, хоть и будучи программистом, никогда не был силён в «высшей математике» (во всяких этих кривых, полях и прочих интеграллах), так что немного сомневаюсь… Вроде как и нужный результат у вашего алгоритма, но вроде как параметры другие.

Как вам кажется — годится ли подобный алгоритм для нахождения _плавной_ траектории между заданными координатами, и что бы траектория проходила по этим точкам? Или тут всё же другая история?
Смотрел про кривые Безье (как более часто встречаемые), так они неособо подошли — там суть в самих кривых, а не в траектории, проходящей через точки.
Все зависит от конкретной задачи.
Параметры зависят от алгоритма. Обратите внимание на другой способ, предложенный ранее в комментариях — CatmullRom сплайны, которые в качестве параметров принимают «натяжение». Здесь можно скачать и попробовать их на деле.
Я бы по рабоче-крестьянски написал так: вводим систему координат (она по умолчанию у нас и так присутствует), параметризуем точки по каждой координате — то есть получаем массив иксов и массив игреков, к каждому из этих массивов добавляем массив параметра — можно равномерный шаг, можно пропорциональный расстоянию между точками на плоскости — и интерполируем эти 2 набора точек от параметра ЛЮБЫМ понравившимся нам способом с нужной степенью гладкости — хоть глобальным сплайном с непрерывными 0,1,2 производными, хоть локальным с непрерывными 0,1 — тот же Катмулл-Ром и прочие, имя им легион. Все, пробегаемся с любым шагом по параметру и получаем точки нашей гладкой кривой.
Спасибо за статью. Тема и правда в сети освещена мало, инструментарий пригодится мне для интерполяции номограмм.
Sign up to leave a comment.

Articles