Суперформула - Superformula
В суперформула является обобщением суперэллипс и был предложен Йоханом Гелисом около 2000 года.[1] Гиелис предположил, что формулу можно использовать для описания многих сложных форм и кривых, встречающихся в природе. Gielis подал заявку на патент, связанный с синтезом шаблонов, генерируемых суперформулой.[2]
В полярные координаты, с радиус и угол, суперформула:
Выбирая разные значения параметров и могут быть созданы различные формы.
Формула была получена путем обобщения суперэллипса, названного и популяризированного Пит Хайн, а Датский математик.
2D-графики
В следующих примерах значения, показанные над каждым рисунком, должны быть м, п1, п2 и п3.
А GNU Octave программа для генерации этих фигур
функцияsf2d(п, а)ты = [0:.001:2 * число Пи]; Raux = пресс(1 / а(1) .* пресс(потому что(п(1) * ты / 4))) .^ п(3) + пресс(1 / а(2) .* пресс(грех(п(1) * ты / 4))) .^ п(4); р = пресс(Raux) .^ (- 1 / п(2)); Икс = р .* потому что(ты); у = р .* грех(ты); участок(Икс, у);конец
Расширение на более высокие измерения
Можно расширить формулу до 3, 4 или п размеры, с помощью сферический продукт суперформул. Например, 3D параметрическая поверхность получается перемножением двух суперформул р1 и р2. Координаты определяются соотношениями:
куда (широта ) варьируется от -π/ 2 и π/ 2 и θ (долгота ) между -π и π.
3D-графики
3D суперформула: а = б = 1; м, п1, п2 и п3 показаны на фотографиях.
А GNU Octave программа для генерации этих фигур:
функцияsf3d(п, а)ты = [- число Пи:.05:число Пи]; v = [- число Пи / 2:.05:число Пи / 2]; ню = длина(ты); NV = длина(v); за я = 1: ню за j = 1: nv raux1 = пресс(1 / а(1) * пресс(потому что(п(1) .* ты(я) / 4))) .^ п(3) + пресс(1 / а(2) * пресс(грех(п(1) * ты(я) / 4))) .^ п(4); r1 = пресс(raux1) .^ (- 1 / п(2)); raux2 = пресс(1 / а(1) * пресс(потому что(п(1) * v(j) / 4))) .^ п(3) + пресс(1 / а(2) * пресс(грех(п(1) * v(j) / 4))) .^ п(4); r2 = пресс(raux2) .^ (- 1 / п(2)); Икс(я, j) = r1 * потому что(ты(я)) * r2 * потому что(v(j)); у(я, j) = r1 * грех(ты(я)) * r2 * потому что(v(j)); z(я, j) = r2 * грех(v(j)); конец; конец; сетка(Икс, у, z);конечная функция;
Обобщение
Суперформулу можно обобщить, допуская различные м параметры в двух членах суперформулы. Заменив первый параметр с у и второй параметр с z:[3]
Это позволяет создавать вращательно-асимметричные и вложенные структуры. В следующих примерах a, b, и 1:
Рекомендации
- ^ Гиелис, Йохан (2003), «Общее геометрическое преобразование, объединяющее широкий спектр естественных и абстрактных форм», Американский журнал ботаники, 90 (3): 333–338, Дои:10.3732 / ajb.90.3.333, ISSN 0002-9122, PMID 21659124
- ^ Патент EP 1177529, Gielis, Johan, "Метод и устройство для синтеза паттернов", выпущено 02.02.2005.
- ^ * Стор, Уве (2004), Суперформула (PDF), заархивировано из оригинал (PDF) 8 декабря 2017 г.
внешняя ссылка
- Сайт с информацией о суперформуле и Йохане Гиелисе
- Некоторые эксперименты по подгонке кривых Гилиса с помощью методов имитационного отжига и роя частиц глобальной оптимизации
- Аппроксимация кривых Чакон-Гиелиса методом наименьших квадратов методом оптимизации роя частиц
- 2D-плоттер Superformula и генератор SVG
- Интерактивный пример с использованием JSXGraph
- 3D Superdupershape Explorer с использованием обработки
- Интерактивный плоттер 3D Superformula с использованием обработки (с кодом)
- SuperShaper: OpenSource, ускоренный OpenCL, интерактивный генератор 3D SuperShape с визуализацией на основе шейдеров (OpenGL3)
- Simpel, реализация SuperShape на основе WebGL