Резюме.
Я сидел за кухонным столом, раздумывая, как можно смоделировать горку на детской площадке или эти водяные слайд-трубы.
Эта штука добавляет поддержку кривой/поверхности Эрмита в библиотеку поверхностных твердых тел OpenScad.
Основной расчет интерполяции по Гермите фактически скрывался некоторое время, но теперь он хорошо используется. Благодаря этому в библиотеке теперь есть lerp (линейная интерполяция), berp (интерполяция Безье) и herp (интерполяция Гермите).
Кривая Эрмита определяется двумя конечными точками и векторами касательной к этим точкам. Она в некоторой степени связана с кривой Безье. На самом деле, я использую те же базисные функции Бернштейна для её описания. Некоторым людям может быть легче работать с ней, а некоторым сложнее, но это просто ещё один инструмент в арсенале, помога
В этом конкретном случае я добавил модуль 'sweep_hermite()' в рендер. С ним очень легко работать. Вы определяете одну кривую как свой 'профиль', а другую кривую как путь, по которому вы будете проводить этот профиль. Модуль позаботится о создании соответствующих многогранников для заполнения твердого тела. Вы можете указать толщину, и
Это также показывает общий механизм выполнения сканирования с помощью кривых. Чтобы сделать его полностью универсальным и уменьшить количество кода, необходимого для поддержки различных кривых, я буду дальше развивать матричное представление кривых. Это, по сути, будет то же самое, что иметь указатели на функции для создания поверхностей, если вы понимаете, о ч
Я добавил некоторую поддержку визуальной отладки. Если вы решите показать контрольную рамку, вы получите хорошее представление профиля и кривых смещения, в комплекте с их тангенциальными векторами.
Использование векторов тангенса интересно. Вы должны помнить, что вектор имеет длину и направление. Длина влияет на силу тяги в определённом направлении. Лучше всего думать о них как о центрированных в точке [0,0,0] и направлять их в желаемое направление. Вам придётся поэкспериментировать с их настройкой, чтобы понять суть этого.
Мне приходит в голову, что это может быть хорошим инструментом для изучения различных типов кривых и поверхностей. Особенно с визуальной отладкой и дополнительным бонусом, который заключается в том, что вы можете напечатать физическую модель после всех ваших усердных манипуляций.
Я сделал лицензию общественным достоянием, так как это уже хорошо известная практика.
Запланировано ли появление сплайнов?
В любом случае...
Инструкции.
1) Скачайте файлы .scad.
2) Поэкспериментируйте с test_hermite.scad, чтобы создавать красивые изображения.
3) Скомпилируйте и экспортируйте в .stl.
4) Радуйтесь!
В большинстве случаев это приведет к созданию твердой поверхности, которую можно преобразовать в файл .stl. Наиболее вероятное применение здесь - создание отдельных деталей, которые соединяются с другими деталями. Например, мои водостоки для горок.