Недавно прочитал интересную статью на хабре. В этой статье рассказывается про дизайн иконок для смартфонов, где вместо квадратных иконок со скруглёнными краями используется так называемый квадрокруг.
Если кратко, то использование таких кривых даёт более плавное скругление углов прямоугольника без резких переходов.
И вот я подумал, почему бы не использовать квадрокруги в своих 3D моделях? Модели я разрабатываю в OpenScad, обычно для печати их на 3D принтере. И часто в этом случае приходится применять скругление острых углов, например, при разработке корпусов для своих самоделок.
Квадрокруг - это особая фигура, которая формируется кривой, соответствующей уравнению
Где a - длина по оси X, b - длина по оси Y, n - параметр, отвечающий за степень скругления. Более подробно про квадрокруг можно прочитать в этой статье на хабре или на Википедии (анг.).
При этом удобно регулировать степень скругления, изменяя параметр n. Чем больше n - тем меньше степень скругления. Например, для n = 2 - будет элипс.
В итоге разработал два модуля для OpenScad, которые рисуют параллелепипед со скруглёнными краями. Другими словами, это аналоги функции cube в OpenScad, только со скруглением. Представлено два модуля:
- “roundedCube”, который скругляет углы прямоугольника, лежащего в основании параллелепипеда, при помощи окружностей.
- “squircleCube”, где вместо прямоугольника в основании параллелепипеда используется “квадрокруг”.
Исходный код можно скачать с GitHub.
На рисунке ниже можно увидеть отличие квадрата со скруглением от квадрокруга (кликабельно). Я постарался подобрать параметры так, чтобы обе фигуры были как можно близки друг к другу. Здесь, зелёным цветом показаны края скруглённого квадрата, а коричневый - это квадрокруг.
Параметры квадрокруга: размер 100, а степень n в уравнении равна 5. Параметры скруглённого квадрата: размер 100, а радиус скругления 22.