Skip to content

Другие фракталы

VBrazhnik edited this page Aug 3, 2019 · 1 revision

Кроме множеств Мандельброта и Жюлия в рамках данного проекта также необходимо реализовать как минимум еще один фрактал.

В качестве этого дополнительного фрактала можно выбрать один из алгебраических фракталов.

Ниже приведен список из восьми таких фракталов, которые можно было бы легко реализовать в данном проекте.

Код инициализации переменных, выбор цвета для точки, а также другие детали, — идентичны для всех перечисленных в данной главе фракталов, как и для множества Мандельброта.

Незначительные отличия присутствуют только в формулах самих фракталов, которые и будут приведены ниже вместе с соответствующими изображениями и названиями.

Burning Ship

Burning Ship

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        pow(z.re, 2.0) - pow(z.im, 2.0) + c.re,
        -2.0 * fabs(z.re * z.im) + c.im);
    iteration++;
}

Mandelbar

Mandelbar

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        pow(z.re, 2.0) - pow(z.im, 2.0) + c.re,
        -2.0 * z.re * z.im + c.im);
    iteration++;
}

Celtic Mandelbrot

Celtic Mandelbrot

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        fabs(pow(z.re, 2.0) - pow(z.im, 2.0)) + c.re,
        2.0 * z.re * z.im + c.im);
    iteration++;
}

Celtic Mandelbar

Celtic Mandelbar

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        fabs(pow(z.re, 2.0) - pow(z.im, 2.0)) + c.re,
        -2.0 * z.re * z.im + c.im);
    iteration++;
}

Celtic Perpendicular

Celtic Perpendicular

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        fabs(pow(z.re, 2.0) - pow(z.im, 2.0)) + c.re,
        -2.0 * fabs(z.re) * z.im + c.im);
    iteration++;
}

Perpendicular Mandelbrot

Perpendicular Mandelbrot

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        pow(z.re, 2.0) - pow(z.im, 2.0) + c.re,
        -2.0 * fabs(z.re) * z.im + c.im);
    iteration++;
}

Perpendicular Burning Ship

Perpendicular Burning Ship

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        pow(z.re, 2.0) - pow(z.im, 2.0) + c.re,
        -2.0 * z.re * fabs(z.im) + c.im);
    iteration++;
}

Perpendicular Buffalo

Perpendicular Buffalo

iteration = 0;
while (pow(z.re, 2.0) + pow(z.im, 2.0) <= 4
    && iteration < max_iteration)
{
    z = init_complex(
        fabs(pow(z.re, 2.0) - pow(z.im, 2.0)) + c.re,
        -2.0 * z.re * fabs(z.im) + c.im);
    iteration++;
}

Источники информации