FractalPark
ClássicaMédio

Perpendicular Celtic

Um mapa quadrático da família Perpendicular: dobre a parte real antes de elevar ao quadrado, dobre novamente o resultado real, e a borda se entrelaça em tranças.

Abrir no Explorar
Fractal Perpendicular Celtic com faixas trançadas, arcos espelhados e laços semelhantes a porcelana
Perpendicular Celtic: faixas entrelaçadas e arcos espelhados, dobrados de forma acentuada na borda e em laços no interior.

Visão geral

O Perpendicular Celtic pertence à família Perpendicular das variantes do Burning Ship, junto com o Perpendicular Burning Ship e o Perpendicular Buffalo. Seu movimento é uma dupla dobra: dobre o componente real antes de elevar ao quadrado e depois dobre novamente o componente real do resultado. O componente imaginário não passa pela segunda dobra.

Cada iteração redireciona a borda duas vezes. Formas trançadas e entrelaçadas começam a aparecer — próximas o bastante dos nós celtas para explicar o nome. Arcos espelhados, laços semelhantes a porcelana e faixas de tempo de escape fazem curvas de ângulo reto em dobras acentuadas.

Em algumas regiões, ele é simétrico em relação aos eixos real e imaginário, ao contrário de algumas variantes do Burning Ship. A razão está no arranjo perpendicular: as dobras atuam ortogonalmente, um eixo por vez, em vez de ambos ao mesmo tempo.

A Matemática

Perpendicular Celtic iteration

Fold the real input, square it, fold the resulting real part, then add c

First fold the real input: construct z' = |xₙ| + iyₙ. Square it: (z')² = (|xₙ|² − yₙ²) + i(2·|xₙ|·yₙ). Then fold the real part of that result: zₙ₊₁ = ||xₙ|² − yₙ²| + i(2·|xₙ|·yₙ) + c.

The double fold reflects the real component twice per iteration: before the square, negative x mirrors to positive; after it, a negative resulting real part mirrors to nonnegative. The imaginary component folds only indirectly, through |xₙ| in the cross term.

Consider c = −0.5. For the Mandelbrot set: z₁ = −0.5, z₂ = −0.25, bounded. For the Perpendicular Celtic: z₁ = ||0|² − 0²| + i(2·|0|·0) − 0.5 = 0 − 0.5 = −0.5, then z₂ = ||−0.5|² − 0²| + i(2·|−0.5|·0) − 0.5 = |0.25| − 0.5 = −0.25, same orbit. But try c = 0.3i: the double fold redirects the orbit in a way that neither the Mandelbrot set nor the Burning Ship reproduces.

História

Perpendicular Celtic belongs to the “Perpendicular” Burning Ship family, with Perpendicular Burning Ship, Perpendicular Buffalo, and related forms. Like the others, it came from the fractal art community rather than academic research.

“Celtic” names the visual resemblance to Celtic knotwork made by the double fold. “Perpendicular” names the folds’ orthogonal placement: first on the real coordinate before squaring, then on the real part of the result.

It appears in formula browsers supporting custom iterations, including Ultra Fractal, Fractal Extreme, and Mandelbrowser. The earliest documented instances are in online fractal forums and fractal wiki pages cataloging Burning Ship variants.

Características Visuais

Braided bands, mirrored arches, and porcelain-like loops gather at folds where escape-time color turns at right angles. From far out, the structure is symmetric across both axes; deeper in, fine asymmetries appear.

Remix e Exemplos

Comece pelo Documento canônico

Abra o mesmo estado de fórmula aprovado usado por este guia e depois altere a visualização, a coloração, as transformações ou a animação no Explorar interativo.

Perguntas Frequentes

Why are absolute values used twice?

The folds act at different moments: the first absolute value folds the real input before squaring; the second folds the squared result’s real part. The real component is therefore reflected twice per iteration, changing how the orbit responds to the parameter c. Compared with the single-fold Burning Ship, the boundary becomes finer and more braided.

Is it simply a rotated Burning Ship?

No. It is related to the Burning Ship through absolute-value folds, but it places them differently in the quadratic step. The Burning Ship folds both raw coordinates before squaring. Perpendicular Celtic folds the real coordinate before squaring and then folds the result’s real part again. That two-stage order gives the orbit a different geometry and a distinct symmetry.

Referências

Leitura guiada do código-fonte

  1. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:init/0

    Em perpendicularCeltic, este nó executa if ismand: z = 0; caso contrário z = pixel.

  2. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:loop/1

    Em perpendicularCeltic, este nó executa real(p) = abs(real(z)).

  3. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:loop/5

    Em perpendicularCeltic, este nó executa real(z) = abs(real(z2)).

  4. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:bailout

    Em perpendicularCeltic, este nó executa |z| <= 256.

Recursos de sintaxe

state-flow

O fluxo de estado específico é: a escolha de ismand inicializa z; p e z2 são estados temporários; depois, z é reconstruído e deslocado por c.

stopping-test

O teste de parada verifica apenas |z| <= 256; ele não atribui um valor ao estado.

Experimento de parâmetros

Etapas

  1. Com os outros controles do perfil fixos, execute perpendicularCeltic com 48 iterações.
  2. Depois use as 96 iterações do perfil fixo e registre se há diferença.

O que observar

Registre se p recebe abs(real(z)) e imag(z); z2 = p * p; z é reconstruído com abs(real(z2)) e imag(z2), então z = z + c muda o resultado visível ou o teste de parada |z| <= 256 em relação à linha de base; a definição não garante diferença.

Exercício

Rastreie as anotações de perpendicularCeltic e explique como p recebe abs(real(z)) e imag(z); z2 = p * p; z é reconstruído com abs(real(z2)) e imag(z2), então z = z + c é executado nas operações indicadas.

Verificação de conclusão

Sua resposta explica as 4 anotações, identifica p recebe abs(real(z)) e imag(z); z2 = p * p; z é reconstruído com abs(real(z2)) e imag(z2), então z = z + c e trata |z| <= 256 como teste de parada, não como atribuição.

Dica

O fluxo de estado executa if ismand: z = 0; caso contrário z = pixel → p = (0, 0) → real(p) = abs(real(z)) → z2 = p * p → real(z) = abs(real(z2)) → z = z + c em sequência, fornecendo o resultado à etapa seguinte.

Fontes e direitos

Fonte: definição de execução fixada e decisão de publicação.

As informações de direitos seguem a decisão fixada na unidade em inglês.

Registro da fórmula

perpendicularCeltic

Esta implementação canônica do FractalPark está publicada e pode ser executada.

Prévia determinística de perpendicularCeltic

Código-fonte canônico

Linguagem
frm-like/1
Biblioteca padrão
1
Modo do perfil
parameter-plane
Centro do perfil
-0.5, 0
Zoom do perfil
0.4
Iterações do perfil
96
Evidência do perfil
mechanical

Parâmetros

Nenhum parâmetro declarado

Código-fonte canônico

Esta revisão canônica verificada é somente leitura. Remix cria uma bifurcação editável separada.

Carregando código-fonte canônico…

Fonte e implementação

ID da fórmula
627c38a8-8f4d-548f-a5a6-dd9f215adf60
Nome canônico
perpendicularCeltic
Nome original
perpendicularCeltic
Fonte histórica
FractalPark
Implementação atual
Propriedade do projeto

Esta é uma implementação própria do projeto FractalPark. O arquivo vinculado é a Definition canônica fixada.

Problema de direitos ou atribuição?

Envie o ID da fórmula e as evidências. O mantenedor pode suspender ou retirar a implementação durante a análise. contact@fractalpark.com