sabato 24 ottobre 2020

 Hilbert (1862-1943) 

Il matematico, studiò una curva tramite un processo iterativo che finisce per riempire l'intero quadrato di lato unitario.
Nel caso dello schermo ovviamente per avere il riempimento, il quadrato esce dai limiti dello stesso.

Curva di Hilbert il mio metodo:
 
//hilbert_monocromatico(2, 8, 1, 100/4, 90, 2,blu_acquamarina);//Hilbert tipico


I miei metodi [1] usano la curva di Hilbert, ma al termine di ogni passo viene disegnata o un'immagine da una mia libreria o una forma geometrica, ovvero ambedue le cose.

Le chiamate ai metodi, sono tutte disattivate da una doppia barra obliqua (slash //) la chiamata, (rappresentata per riconoscerla in blu), senza doppia barra obliqua (slash //) è invece attiva questo mi permette di scegliere cosa far fare al programma.

In fase di lavoro posso modificare i valori dei parametri per la ricerca di diverse configurazioni delle immagini risultanti, per colore, forma, angoli, ecc.

Spesso con un'unica chiamata, sono riuniti più metodi e spesso un metodo può richiamare se stesso.

//-----------curva di hilbert-----------------------------------------------------------------------------------
                
                ///PARAMETRI:
                /// <summary>
                /// 
                /// </summary>
                /// <param name="dimensione"></param>
                /// <param name="livello"></param>
                /// <param name="parità"></param>
                /// <param name="lunghezza"></param>
                /// <param name="angolo"></param>
                /// <param name="tratto"></param>
                /// <param name="colore"></param>
                /// <param name="vero"></param>
                //hilbert(1500, 300, 2, 28, 91,6,true,false);
                //hilbert(200, 200, 1, 620, 77,5,false,true);
                //hilbert(200, 200, 1, 200, 61, 2,true,false);
                //hilbert(200, 200, 4, 40, 80, 9,false,true);
                //hilbert(200, 200, 1, 50, 100,1,true,false);
                //hilbert(200, 200, 1, 300, 115, 10,false,true);             
                //hilbert(1500, 14, 1, 15, 90,24,true,false);
                //hilberth(2, 8, 1, 15, 90, 6, true, false);
                //--------------------------------------------------------------------------------------------------
                //hilbert_riempimenti(100, 100, 1, 190, 90,90,1,true,false,true);
                //hilbert_riempimenti(100, 100, 1, 50, 120, 120, 1, true, false,true);
               
               //hilbert_monocromatico(2, 8, 1, 100/4, 90, 2,blu_acquamarina);//Hilbert tipico

                //hilbert_variazioni(2, 8, 1, 6 , 90, 2, true, 3, 6, 9,true);               
                //hilbert_immagini(2, 8, 1, 70, 90, 2, false,true,1,1,1,43,53);
                //hilbert_immagini(2, 8, 1, 70, 94, 2, false, true, 1, 1, 1, 20, 30);
                //hilbert_immagini(2, 8, 1, 70, 90, 2, false, true, 1, 1, 1, 30, 31);
                //hilbert_alfabeti(1112, 8, 1,30, 90, 2, false, true, 1, 1, 1, 1, 28);
                //hilbert_alfabeti(1112, 30, 1, 25, 90, 2, true, false, 1, 1, 1, 1, 28);
                //****************************************************************
                  hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 7, 7);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 6, 6);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 5, 5);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 4, 4);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 3, 3);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 2, 2);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 1, 3);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 1, 5);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 1, 10);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 30, 33);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, false, 1, 1, 1, 35, 45);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 20, 30);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 25, 25);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 22, 22);
                //hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 35, 35);
                
                /// <summary>
                /// 
                /// </summary>
                /// <param name="dimensione"></param>//numero iterazioni
                /// <param name="livello"></param>//livelli di complessità
                /// <param name="parità"></param>parità * angolo
                /// <param name="lunghezza"></param>lunghezza lato
                /// <param name="angolo"></param>angolo
                /// <param name="tratto"></param>spessore tratto
                /// <param name="colore"></param>colore della penna

n.b. - colore solido se = true 
         radiale se = false

                /// <param name="invisibile"></param> rende invisibile la penna 

n.b. - penna invisibile se=true

                /// <param name="aaa"></param>lunghezza/aaa
                /// <param name="bbb"></param>lunghezza/bbb
                /// <param name="ccc"></param>lunghezza/ccc
                /// <param name="inizio"></param>inizio immagine
                /// <param name="fine"></param>fine immagine
                 //****************************************************************

//---usa piccoli cerchi o quadrati o rettangoli---------------------------------------------------------------

//hilbert_cerchietti(1112 * 6, 40 * 20, 1, 20, 90, 2, true, true, 1, 1, 1, 35, 41, 40, 40, 90, 90);                
//hilbert_cerchietti(1112 * 6, 40 * 20, 1, 100, 120, 2, true, false, 1, 1, 1, 35, 35, 120, 120, 90, 90);
//hilbert_cerchietti(1112 * 6, 40 * 20, 1, 1, 144, 2, true, false, 1, 1, 1, 35, 35, 120, 120, 14, 14);                      //***************************************************************

[1] Con il termine "metodo"si intende un blocco di codice che contiene una serie di istruzioni.
[2] nel programma "Hilbert" è minuscolo, perché non uso in genere maiuscole nel nome del metodo



hilbert_tasselli(1112 * 6, 40 * 20, 1, 20, 90, 22, true, true, 1, 1, 1, 7, 7);il metodo richiama le immagini con il metodo 
public void random_pic2(int inizio, int fine) passando gli ultimi due parametri interi: 
(inizio, fine) che richiamano le immagini dalla libreria, una sola se uguali, da numero a numero se diversi






















 

Nessun commento:

Posta un commento