Я разрабатываю 3D-графическое приложение, в котором пользователь может рисовать кривые. Я записываю кривую, которая нарисована пользователем, и я хотел бы создать гладкий nurb из записанного набора точек. Я попытался использовать библиотеку openNurbs, но не смог найти способ сделать фитинг с помощью библиотеки. Как я могу установить набор точек в nurb?Создание плавного nurb из списка точек
ответ
Прежде всего, я не думаю, что вам нужны nurbs. Приближение кривой B-сплайна к вашим точкам данных должно быть достаточно хорошим.
Если у вас всего несколько десятков точек, то, скорее всего, вы хотите, чтобы кривая B-сплайна точно проходила через эти точки данных. В этом случае вы ищете алгоритмы интерполяции сплайнов. Если это так, вы можете использовать сплайн Catmull Rom или сплайн Overhauser для интерполяции ваших точек данных. Оба будут создавать C1 кубические сплайны, и оба их легко реализовать без необходимости решения набора линейных уравнений.
Если у вас несколько сотен точек, то, скорее всего, вы хотите, чтобы кривая B-сплайна находилась близко к точкам данных. Затем алгоритм, который вы ищете, является наименее квадратным. В этой области вы можете найти множество статей (например, link1). Типичный алгоритм для наименьшего квадрата с B-сплайновой кривой будет включать следующие этапы:
1) Выберите параметризацию для своих точек данных. Параметризация длины аккорда обычно является хорошим выбором для наименьшего квадрата.
2) Выберите степень для B-сплайна. Как правило, мы используем степень 3, то есть кубический B-сплайн.
3) Определите количество контрольных точек для вашего B-сплайна.
4) Определите вектор узла на основе информации в первые 3 шага.
5) Решите линейное уравнение, чтобы найти контрольные точки B-сплайна.
- 1. Создание сюжета из списка точек
- 2. 3D-точки проекта или кривая NURB на пространстве параметров NURB
- 3. Создание Твиттера APP плавного времени
- 4. Android: Создание списка точек в текстовом редакторе
- 5. Создание пути из итерабельного точек
- 6. Разделив значения точек из списка
- 7. Майя: Создание временной MFnMEsh для плавного экспорта
- 8. Создание штабелированного кумулятивного плавного распределения частот
- 9. java создание плавного мульти изображения анимации
- 10. Нанесение плавного контура вокруг точек в полярном графике
- 11. Создание плавного линейного графика с использованием matplotlib
- 12. Создание списка кортежей из списка
- 13. Обновление плавного графика из многопоточного источника данных
- 14. Удаление плавного прокрутки из вкладок
- 15. UILabel плавного вопроса перепыл из
- 16. Создание списка из числа, а затем создание листинга из списка
- 17. Создание словаря из списка строк (создание ключей из элементов списка)
- 18. Создание списка из файла
- 19. Создание строки из списка
- 20. Создание словаря из списка
- 21. Создание списка из словаря
- 22. Создание списка из пар
- 23. Создание словаря из списка
- 24. Создание JsonArray из списка
- 25. Создание изображения из списка
- 26. Создание массива из списка
- 27. Создание списка из массива
- 28. Создание строки из списка
- 29. создание списка из таблицы
- 30. Создание каталогов из списка