Elaborazioni leggere degli esempi ufficiali
Indice
…
Le figure primitive SQUARE, CIRCLE e TRIANGLE con l’uso dei parametri x, y, size, brightness e rotate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
startshape CHAPTER1 rule CHAPTER1 { SQUARE { y 2.5 } CIRCLE { x -1.5 y 2.5 b 0.33 } TRIANGLE{ x +1.5 y 2.5 b 0.66 } SHAPES { size 3 } } rule SHAPES { SQUARE { } CIRCLE { b 0.33 } TRIANGLE{ b 0.66 } TRIANGLE{ b 0.66 r 60 } } |
Ancora le figure primitive con l’uso dei parametri principali
Il gruppo di immagini a destra è ruotato di 30° e ridotto al 25%
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
startshape CHAPTER2 rule CHAPTER2 { SQUARE { } SQUARE { x 2 brightness 0.33 rotate 30 } SQUARE { y 1.5 brightness 0.33 size 0.75 } SQUARE { x 2 y 1.5 brightness 0.66 rotate 30 size 0.75 } FOURSQUARE{ x 5 y 1 rotate 30 size 0.25 } } rule FOURSQUARE { SQUARE{ } SQUARE{ x +3 y +3 brightness 0.66 size 2 4 } SQUARE{ x -3 y +3 brightness 0.33 size 4 } SQUARE{ x -3 y -3 brightness 0.66 size 4 2 } SQUARE{ x +3 y -3 brightness 0.33 size 2 } } |
La ricorsione permette di creare una spirale.
Ad ogni passo il cerchio si sposta verso l’alto del 25% ruotando di 3° e riducendo la dimensione del 0.3%.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
startshape CHAPTER3 rule CHAPTER3 { SPIRALE{ } } rule SPIRALE { CIRCLE{ s 0.5 } SPIRALE { y 0.25 rotate 3 size 0.997 } } |
Se il cerchio non viene disegnato al 50% l’immagine finale risulta più densa pur mantenendo la stessa struttura
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
startshape CHAPTER3 rule CHAPTER3 { SPIRALE{ } } rule SPIRALE { CIRCLE{ } SPIRALE { y 0.25 rotate 3 size 0.997 } } |
La stessa regola definita più volte introduce la casualità.
La regola ALBERO realizza un albero diverso per ognuna delle sue chiamate.
L’albero cresce verso l’alto ma una volta su 16 può generare un ramo destro e un ramo sinistro.
I rami, a loro volta, possono generare un sottoalbero ruotato di 20° o di 30° o di 40° oppure terminare la generazione.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
startshape CHAPTER4 rule CHAPTER4 { ALBERO{ } ALBERO{ x 5 } ALBERO{ y 5 } ALBERO{ x 5 y 5 } } rule ALBERO 15 { CIRCLE{ size 0.25 } ALBERO{ y 0.1 size 0.97 } } rule ALBERO 1 { RAMO_SINISTRO{ } RAMO_DESTRO { } } rule RAMO_SINISTRO{ ALBERO { rotate +20 } } rule RAMO_SINISTRO{ ALBERO { rotate +30 } } rule RAMO_SINISTRO{ ALBERO { rotate +40 } } rule RAMO_SINISTRO{ } rule RAMO_DESTRO{ ALBERO { rotate -20 } } rule RAMO_DESTRO{ ALBERO { rotate -30 } } rule RAMO_DESTRO{ ALBERO { rotate -40 } } rule RAMO_DESTRO{ } |
Per disegnare un cuore si utilizza più volte una curva di base
La curva subisce traslazioni, riduzioni, rotazioni, ribaltamenti.
Ci sono diversi accorgimenti per ottenere il risultato finale
flip 90 permette di creare un immagine speculare rispetto all’asse di 90° specificato
include i_curves.cfdg permette di utilizzare la regola curveright_0.99_1 contenuta nel file i_curves.cfdg
size 1.2 1 cambia le proporzioni dell’immagine a favore dell’asse orizzontale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
startshape CHAPTER6 rule CHAPTER6 { HEART{ size 1.2 1} } include i_curves.cfdg rule CUORE { curveright_0.99_1{ rotate +64 } curveright_0.99_1{ rotate -64 flip 90 } CUORE{ size 0.93 y 2 } } |
…