L'Attrattore di Hopalong

Riferimenti Storici e Bibliografici
Questa applicazione è stata sviluppata traendo ispirazione dalla pubblicazione monografica "Divertirsi con il calcolatore: giochi, simulazioni e grafica", a cura di Virginio Sala (Le Scienze S.p.A. Editore, Milano 1987).
L'algoritmo fa riferimento all'articolo: "Tappezzeria per la mente: immagini al calcolatore, quasi, ma non del tutto, ripetitive" di A. K. Dewdney, pubblicato su Le Scienze (1986).

1. Il Sistema Dinamico

Il Mandala di Hopalong è generato da un sistema dinamico discreto bidimensionale. Data una posizione iniziale (x0, y0), le coordinate successive sono calcolate iterativamente mediante la seguente trasformazione:

$$x_{n+1} = y_n - \text{sgn}(x_n) \sqrt{|b \cdot x_n - c|}$$ $$y_{n+1} = a - x_n$$

// Implementazione C-like del nucleo iterativo

for (int i = 0; i < iterazioni; i++) {



    double sgn_x = (x > 0) ? 1.0 : (x < 0 ? -1.0 : 0.0);

    //"Se il numero è positivo, il risultato è 1;

    //se è negativo, il risultato è -1;

    //se invece è zero, il risultato rimane 0."



    double next_x = y - sgn_x * sqrt(fabs(b * x - c));



    double next_y = a - x;



    x = next_x;

    y = next_y;



    disegna_punto(x, y);

}

2. L'Essenza dell'Attrattore: Ordine nel Caos

In matematica, un attrattore può essere immaginato come una "destinazione invisibile". Anche se le singole iterazioni dell'algoritmo sembrano saltare in modo imprevedibile da un punto all'altro, nel lungo periodo esse tendono ad accumularsi in una struttura geometrica ben definita.

L'effetto grafico nell'App è la fotografia del comportamento a lungo termine di una formula: un equilibrio tra imprevedibilità locale e stabilità globale.

3. Significato dei Parametri

4. Comportamento Frattale

Nonostante la semplicità delle equazioni, il sistema produce un attrattore strano: un insieme di punti con dimensione frazionaria che riempie lo spazio in modo non uniforme, creando zone di accumulo di luce che percepiamo come "pizzo" o "seta".

5. Implementazione Numerica

Nell'implementazione moderna, utilizziamo la tecnica dell'accumulazione cromatica. La luminosità di un pixel è data dalla somma dei contributi di ogni passaggio:

$$L_{pixel} = \sum_{i=1}^{N} \text{color}(i) \cdot \delta$$