Come produrre nuove immagini

Indice

Vedi anche:

La numerazione

Gli attrattori riportati a gruppi di 30 su Internet sono quelli che cominciano da 18620. Alcuni interessanti attrattori sono:

Le immagini su Internet


I programmi su Internet


L'archivio su Internet

L'archivio e' disponibile in forma zippata. Una volta unzippato esso crea il file attr.html.

A partire da questo file in formato Ascii e' possibile ricostruire l'archivio originale.Su axal04 procedere in 2 passi. Prima passare clean con:

@clean
e quindi order4 con
@order4
. Il risultato finale sara' la creazione di 2 files: attr.dat di 50000 record ad accesso diretto e for093.dat di circa 35000 righe in formato Ascii. Quest'ultimo file contiene la lista dei soli sistemi "buoni" ordinati.

Il file attr.html e' stato creato dal programma order4 su axpba1. Poi il file e' trasferito su pc e zippato.

Il database e' anche disponibile in 5 file zippati di indirizzo: http://pcba10.ba.infn.it/ufattr/select/formula1.zip fino a http://pcba10.ba.infn.it/ufattr/select/formula5.zip.
Questi sono stati creati su alboot dal programma creadb e quindi zippati. Una volta unzippati su pc creano il file ufattrou che puo' essere esaminato tramite l'applet Java Select.


1:(se il file ufattr.sav e' stato usato tutto)

Su pc:

Crea una finestra MSDOS
cd ..
cd jdk1...
dir
erase temp.out,temp.tmp,ufattr.sav,ufattr.tmp
java ufattr
ogni pochi giorni interrompi con CTRL-C e copia temp.out su floppy
con ftp copia temp.out dal dischetto su disk$user1:[zito]ufattr.sav
Su axpba1:
set def vaxba0$dka100:[zito.sdev]
Usare l'ultima riga di rndmar.doc per creare un file for092.dat se questo non
esiste.
submit ufattr/que=axpba1$batch
mio
ty ufattr.log (per sapere cosa succede)
copy scr:ufattr.dat disk$user1:[zito]ufattr.sav
dele scr:ufattr.dat;
Su shift50:
set path=( . $path /usr/local/lsf/bin) 
cd ufattr
rm ufattrou
bsub -R shift < nqsjob
bjobs -l  (per controllare l'avvenuta sottomissione)
cat fort.92 (per sapere se e' iniziato)
bqueues (per sapere quanti jobs sono in coda)
(quando il job e' gia' in esecuzione puoi farne partire un altro)
Su axpba1:
 
set def disk$gruppo_1:[zito.demo.alpha]
setd/node=pcba10
@select
(fai un resize e compare la prima immagine)
(dai s per ogni immagine interessante)
(alla fine stoppa e annota l'ultimo sistema)
set def disk$user1:[zito]
edf ufattr.sav
(elimina i sistemi guardati)
(scr:tufattr1.dat contiene i sistemi salvati)
Su un computer collegato a Internet:
Copia il file con le formule su $HOME/WWW/ufattr/select/ufattrou
Fai partire l'applet select(copia di riserva).
2: Ora bisogna ricreare l'archivio attr.dat aggiungendo i nuovi dati in coda.

L'archivio si trova su disk$user1:[zito]attr.dat,for093.dat,for094.dat,for095. dat

Invece axpba0$dkc0:[zito] contiene un backup dello stesso.

Su axpba1

set def axpba0$dkc0:[zito]
dele attr.dat;
copy disk$user1:[zito]attr.dat *
dele for093.dat;
copy disk$user1:[zito]for093.dat *
dele for094.dat;
copy disk$user1:[zito]for094.dat *
dele for095.dat;
copy disk$user1:[zito]for095.dat *
dele disk$user1:[zito]attr.dat;
dele disk$user1:[zito]for093.dat;
dele disk$user1:[zito]for094.dat;
dele disk$user1:[zito]for095.dat;
set def vaxba0$dka100:[zito.sdev]
copy disk$work:[zito]tufattr1.dat  [zito]tufattr.dat
@order2
@order3
n
[Se bisogna usare la copia di pcba10 per ripristinare la copia di backup
ricordarsi di copiare in Ascii for093.dat e gli altri in binario.
Ma dare in seguito:
SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=820) attr.dat
SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=120) for094.dat
SET FILE/ATTRIBUTES=(ORG:SEQ,LRL=228) for095.dat
  ]
Su alboot

L'archivio si trova su $HOME/ufattr/fort.72 e fort.93. I nuovi dati vanno messi su fort.71

./direct(annota il numero delle formule aggiunte)
vi fort.93
(aggiorna la prima riga incrementando i 2 numeri col numero di nuove formule)
(aggiungi in coda una riga per formula aggiunta col numero della stessa)
Ora fai andare ubenvenuto dando su axpba1:
set def [zito.demo.alpha]
@ubenvenuto
Da un pc collegato a Internet puoi usare
l'applet  displayrand1(copia di riserva).Questo richiede il file ufattrdb contenente una selezione
random di formule che puo' essere creata usando il programma rformula500.
(su alboot)
cd ufattr
./rformula500
mv fort.74 $HOME/WWW/ufattr/ufattrdb
chmod 644 $HOME/WWW/ufattr/ufattrdb
Altre immagini interessanti si possono generare usando il programma cicli:
set def [zito.demo.alpha]
@cicli
n
(fai un resize)
n
(dai l'attrattore iniziale)
c per vedere un attrattore disegnato in grande
Usando lo stesso programma e' possibile esaminare tutti gli attrattori disponibili nel database alla ricerca di qualcuno interessante:
@cicli
n
(occupa tutto lo schermo)
y
(dai il numero dell'attrattore da dove cominciare l'analisi)
Al posto di y puoi usare a per avere gli attrattori ordinati ed i per avere solo quelli nella lista contenuta nel file assegnato a for055.
Ubenvenuto scrive su scr:for081.dat le "formule" di tutti i tentativi fatti. Se si vuole recuperare una formula procedere nel modo seguente: Le immagini con la scacchiera deformata si ottengono usando il programma deform1:
set def [zito.demo.alpha]
@deform1
(fai un resize)
(dai l'attrattore iniziale)
Le immagini prodotte con l'algoritmo genetico si ottengono usando il programma cfun per la selezione e tfun per la resa finale. Le immagini scelte sono scritte su cfun.dat
(su axpba1)
set def [zito.demo.alpha]
@cfun
fai il resize
scegli le immagini (la griglia e' 7x7 ma purtroppo 
la riga di sotto sul PC salta anche se va contata 
nello scegliere l'immagine)
(procedi fino a scegliere le immagini da riprodurre in grande)
CTRL-c
edit cfun.dat lasciando solo le ultime 5 formule
@tfun
fai il resize
(su alboot)
cd ufattr
setenv DISPLAY pcba10:0 (fai partire il server X-window su pcba10)
./cfun
fai il resize
scegli le immagini (la griglia e' 7x7 ma purtroppo 
la riga di sotto sul PC salta anche se va contata 
nello scegliere l'immagine)
(procedi fino a scegliere le immagini da riprodurre in grande)
CTRL-c
edita eventualmente fort.61 lasciando solo le ultime  formule
./tfun
fai il resize

E' possibile far plottare a fractint un sistema dinamico,una volta che si e' scoperta la formula Per esempio l'attrattore "chaotic shell" va scritto come shell.frm:
Chaotic shell {; Giuseppe Zito
z=pixel,c1=real(p1):
x = real(z), y = imag(z)
newx = x * x + c1*x -y 
newy = x + y
z = newx + flip(newy)
 |z| < 4
}
e caricato come formula in Fractint. Fractint oltre a dare la possibilita' di cambiare tavolozza, offre il modo di creare immagini fino a 2000x2000 selezionando disk come 'scheda video'.

Come ricavarsi la formula e passarla ai programmi cicli e fractint

  1. Trova con ubenvenuto una formula interessante ed esci dal programma.
  2. Edita il file scr:for081.dat eliminando tutte le formule tranne l'ultima.
  3. Aggiungi i valori 0. 0. alla fine del file
  4. edita [zito.demo]decode.com specificando scr:for081 come file 71
  5. @decodi dando 1 in ingresso
  6. temp.list contiene la formula (si tratta del frattale banner
     Select attractor
     Attrattore           1          31          28
    31
    0  13  =x
    2  7  *x
    3  6  - -0.500242
    5  18  + -0.471509 s1=
    6  21  *s1
    7  3  + 0.208763
    11  11  /y
    14  7  *x
    15  10  /x
    18  8  *y
    20  2  +y
    22  18  + -0.750641 s1=
    23  21  *s1
    24  12  / 0.859494
    26  7  *x
    28  1  +x
    30  10  /x
    28
    0  13  =x
    2  9  * 0.592010
    4  12  / -0.691070
    9  7  *x
    11  1  +x
    14  9  * -0.015975
    15  6  - 0.003455
    16  1  +x
    18  16  =x s1=
    20  1  +x
    21  7  *x
    22  22  /s1
    23  9  * 0.937222
    24  16  =x s1=
    25  21  *s1
    
  7. Incolla il file in shell.frm e ricostruisci la formula usando il seguente schema:
    Banner {; Giuseppe Zito
    z = pixel ,
    c3 = -0.500242 ,
    c5 = -0.471509 ,
    c7 =  0.208763 ,
    c22 =  -0.750641 ,
    c24 =  0.859494 ,
    d2 = 0.592010,
    d4 =  -0.691070,
    d14 =  -0.015975,
    d15 =   0.003455,
    d23 =  0.937222 :
    x = real(z), y = imag(z)
    s1 = (x*x)  - c3
    s2 = (c5*s1) + c7 + y
    newx = ((c22 * s2 *x)/c24 +x)/x
    t1 = ((x*x*d2)/d4 +x)*d14 -d15 + x
    t2 = (((x + x)*x)/t1)*d23
    newy = x * t2
    z = newx + flip(newy)
     |z| < 4
    }  
    
  8. Prova in fractint
  9. In cicli.for definisci una subroutine computennn dopo aver incollato il programma fractint e averlo modificato seguendo lo schema:
          END
          SUBROUTINE COMPUTE134(X,Y,newx,newy)
    C banner
             real newx,newy
             DATA IFIRST/1/
             IF(IFIRST.EQ.1) THEN
             c3 = -0.500242
             c5 = -0.471509
             c7 =  0.208763
             c22 =  -0.750641
             c24 =  0.859494
             d2 = 0.592010
             d4 =  -0.691070
             d14 =  -0.015975
             d15 =   0.003455
             d23 =  0.937222
             IFIRST = 0
             ENDIF
             s1 = (x*x)  - c3
             s2 = (c5*s1) + c7 + y
             newx = ((c22 * s2 *x)/c24 +x)/x
             t1 = ((x*x*d2)/d4 +x)*d14 -d15 + x
             t2 = (((x + x)*x)/t1)*d23
             newy = x * t2
          RETURN
          END
    
  10. Aggiungi inoltre le istruzioni
          IF(N.EQ.134) then
          CALL COMPUTE134(X0,Y0,X1,Y1)
          return
          endif
    
  11. Esegui ricompilando e dando n n -134 :il risultato deve essere identico all'esecuzione del programma select sulla formula originale.
  12. Se ci sono problemi modifica cicli.com eseguendo la compilazione con /deb/noopt e il link con /deb
  13. Esegui col debugger e coi comandi:
    sea 1:10000 134
    ty x
    set break %line x
    step
    ex x
    ev formula
    dep x=formula
    
    controlla la formula passo a passo.

Come ricavarsi la formula e passarla al programma fractint(metodo 2 con l'uso di Java)

  1. Edita scr:for081.dat estraendo l'ultima formula e salvandola su disk$user1:[zito]ufattr.sav
  2. Esamina la formula con select salvandola.(necessario per avere la formula nel formato voluto da decode e per sapere quale figura avremo.
  3. Con ws-ftp copia il file DISK$WORK:[zito]tufattr1.dat su jdk1.2beta cambiando il nome in temp1.out.
  4. Fai andare l'applicazione java decode.
  5. decode.out contiene la formula da incollare in fractint

Antialiasing
Per provare a correggere le immagini con l'antialiasing : produci un'immagine 1600x1200, salvala premendo il tasto "Stamp";richiamala in PSP e salvala come gif; Copiala con ftp su Netview; Su Netview usa Photoshop per richiamare l'immagine e fare un resize ad esempio a 640x480.

Cambiare i colori
Xv su axpba1 permette di cambiare i colori uno a uno. Carica l'immagine e scegli Coledit

Cambiare i colori con fractint
Prima di usare fractint per cambiare i colori, trasformare l'immagine da gif interlacciata a gif noninterlacciata usando psp.Quindi caricate l'immagine in fractint e usate il comando c e return per creare mappe di colori random.
Potete anche provare col comando l a caricare una nuova mappa dal disco. A questo punto dando e(per edit) potete editare la tavolozza.I caratteri . e , permettono allora di far ciclare i colori con lentezza per provare ogni settore della nuova mappa. ( Potete trovare mappe interessanti caricando delle immagini fractint e quindi dopo aver date il comando e, potete salvare la mappa dando il comando s).

Per generare formule a caso sul PC con Ufattr in java
Fai partire una finestra ms-dos e dai i comandi:

cd ..
cd jdk1.2beta
erase temp.out
java ufattr
Ora dovrebbe cominciare l'esecuzione. Le formule trovate sono scritte su temp.out al ritmo di circa 1 ogni milione di tentativi(alcune ore). Quando ce ne sono abbastanza:
copy temp.out ufattr.sav
Ora fai partire ws-ftp e collegati a axpba1 copiando ufattr.sav su disk$user1:[zito]. Da quel punto in poi puoi procedere come in 1 facendo partire select,etc...

Idee su come ottenere altre immagini da una formula che ne ha gia' prodotto una

  1. Prova in Uf a cambiare la densita' e il gradiente del colore.
  2. Prova in Uf a ruotare,muovere e zoomare l'immagine.
  3. Prova in Uf a cambiare i parametri delle formule di colorazione(inside,outside coloring).
  4. Prova in Ultrafractal altre rappresentazioni della formula(inside e outside coloring).Eventualmente carica dalla rete nuovi algoritmi.
  5. Modifica,aggiungi,togli una trasformazione con Ultrafractal.
  6. Se l'immagine e' formata da piu' layer prova a cambiare il merge mode o a muovere i diversi layer tra di loro.
  7. Prova a sovrapporre in diversi layer con Ultrafractal differenti rappresentazioni della formula.Prova ad aggiungere,togliere,modificare layer.
  8. Prova ad aggiunger,togliere,modificare layer con alpha channel definito.
  9. Tenta con Select variazioni random dei parametri delle formula e provali in Ultrafractal.
  10. Archivia la formula nel database(vedi sopra) ed esplora con Ubenvenuto altre rappresentazioni e accoppiamenti random con altre formule nel database(vedi subito dopo).
  11. E' possibile fare un'animazione di piccole immagini variando qualche parametro?
  12. E' possibile creare un collage HTML di piccole immagini con diversi rendering della stessa formula?

Come esplorare con Ubenvenuto le immagini ottenibili da una formula

  1. Guarda la formula con la rappresentazione globale a diversi ingrandimenti.
  2. Guarda la formula come attrattore a diversi ingrandimenti e accumulando i punti.
  3. Fai una rapida esplorazione con "Mod rand cost" e la rappresentazione globale e Julia per vedere se c'e' qualche parametro interessante.
  4. Se c'e' fai un'esplorazione sistematica con "n x y Attr"
  5. Con "Search next attr" e Julia e una piccola finestra prova un centinaio di accoppiamenti.
  6. Fai lo stesso con global ma una finestra piu' grande.
  7. Se trovi qualcosa di interessante prova con una finestra piu' grande
  8. Se trovi qualcosa di interessante prova con "Mod rand cost"
  9. Se la formula e' ok ,ritagliala da "vi fort.81" e incollala in Wordpad salvandola sul Pc nel file temp1.out e procedendo alla sua decodifica nella formula Fractint decode.out da sostituire a Fractint.frm.
  10. Prova a rendere la nuova formula con Ultra Fractal.

Come archiviare un'immagine

  1. Export image su website/htdocs/images col nome nomeimmagine.jpg
  2. Save parameters sulla stessa cartella ,includendo la formula, come nomeimmagine.upr
  3. Export image ridotta di 4 su website/htdocs/images/small
  4. Edita con Wordpad nomeimmagine.upr eliminando le formule della distribuzione standard di Ultrafractal.
  5. Salva eventualmente la formula Fractint in coda al file zg.frm
  6. Salva eventualmente la formula ufattr come nomeimmagine.dat.Includila nel database seguendo la procedura sopra riportata(su alboot:
    cd ufattr;vi fort.71;./direct;vi fort.93)
  7. Inventa un nome e cercalo su Altavista altri motori di ricerca.Carica l'immagine nel database project di Filemaker e aggiorna la lista su alboot.Controlla la nuova lista.
  8. Aggiungi la miniatura alla prossima galleria in costruzione.
  9. Copia l'immagine e gli altri files su netview con ws_ftp.Carica l'immagine in PSP e stampala.
  10. Posta eventualmente i parametri alla mailing list di Uf.
Giuseppe Zito