math

You are currently browsing articles tagged math.

Da Stukhtra apprendo di un magnifico video realizzato da Etérea uno studio di grafica e animazione.

L’autore ha predisposto anche una pagina con la teoria dietro alla base del video nella quale segnala un “bug” presente nell’animazione, riguardante il Nautilus, e del quale si e’ accorto solamente a video ultimato.

Resta senz’ombra di dubbio un lavoro spettacolare.

Tags: , ,

spiralContext Free (CF) è un software per generare immagini da una serie di istruzioni.

Utilizza un semplice set di comandi chiamato Context Free Design Grammar (CFDG).

Un file CFDG è sostanzialmente un gruppo di regole per disegnare forme usando altre forme.

Le forme base sono:

  • SQUARE
  • CIRCLE
  • TRIANGLE

Ci sono pochi altri componenti opzionali ed un unico componente obbligatorio:

  • La direttiva startshape è obbligatoria e informa CF da quale regola partire.
  • Le direttive opzionali: background, tile, size, include, shape, path

Ogni forma può essere modificata da un serie di parametri, in forma e colore.

Il rendering avviene in pochi secondi e quindi è possibile apprezzare subito il risultato dei nostri sforzi 😀

Contextfree

Le possibilità  più interessanti sono senz’altro fornite dalla ricorsione.

Disegnamo un cerchio e attraverso la ricorsione ne variamo progressivamente la luminosita e la dimensione. Utilizziamo poi il nostro cerchio sfumato per costruire una spirale:

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}

spirale

Se una stessa regola appare più volte, CF sceglierà una versione piuttosto che un un’altra casualmente. La probabilità  che venga scelta un versione è proporzionale al suo peso (che viene indicato dopo il nome della regola).

Proviamo ad aggiungere una versione della nostra regola cerchio che utilizza un quadrato come forma base.

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}
rule Cerchio  {
	SQUARE{}
	Cerchio{brightness 0.2 size 0.9}
}
spiralemista

Introducendo queste variazioni pseudo casuali possiamo ottenere immagini sorprendenti.

startshape rami

rule rami {
    SQUARE{y .1 s 0.02 0.2}
    ramo{y .1 s .99 b .1 sat .1 h 60}
    ramo{y .1 f 90}
}

rule rami{
	rami{}
}

rule ramo {
	rami{r 30 s .7}
}
rule ramo {
	rami{r 20 s .8}
}
rule ramo 0.2 {
	rami{r -20 s .616}
}

tree



Context Free permette di inserire le proprie creazioni nella gallery online del sito, nella quale si possono trovare degli autentici capolavori insieme ovviamente al codice per riprodurli.

Context Free è disponibile per Mac OSX, Windows e Linux e in formato sorgente.

Un buon punto di partenza è la sezione tutorial del sito.

Buon divertimento

Tags: , , , , , ,

MimeTex

MimeTeX, è un software licenziato GPL, che permette di incorporare facilmente formule matematiche LaTeX nelle proprie pagine html.

Esegue il parsing delle espressioni matematiche LaTeX e genera la corrispondente immagine gif anzichè il classico dvi TeX.

MimeTeX è un piccolo programma interamente autosufficiente, che non utilizza in nessun modo TeX o le sue fonts. Il suo utilizzo principale è come cgi, quindi è sufficiente posizionarlo nella directory cgi-bin del proprio sito senza altre dipendenze. E’ molto facile da installare, e ugualmente facile da utilizzare. E’ sufficiente inserire un tag html img nel proprio documento per visualizzare la corrispondente espressione matematica.

Ad esempio per rappresentare la seguente espressione LaTeX:

c=\frac{\sqrt{a^2+b^2}} {a^2+b^2}

utilizzeremo il seguente tag html:

<img src="http://mydomain.com/cgi-bin/mimetex?c=\frac{\sqrt{a^2+b^2}} {a^2+b^2}" border="0" alt="" align="middle/" />

ottenendo questo risultato: 

MimeTex può essere utilizzato anche da linea di comando con numerose opzioni disponibili

./mimetex [ -d ]            dump gif image on stdout,
      [ -e export_file ]  or write gif image to export_file
      [ expression      expression, e.g., "x^2+y^2",
      | -f input_file ]   or read expression from input_file
      [ -g1 -d ]        dump .pbm-formatted image on stdout
      [ -g1 -e export_file ]  or write .pbm image to export_file
      [ -g2 -d ]        dump anti-aliased .pgm image on stdout
      [ -g2 -e export_file ]  or write .pgm image to export_file
      [ -m msglevel ]   verbosity of debugging output
      [ -o ]            render image with opaque background
      [ -s fontsize ]   default fontsize, 0-5

per ottenere una gif con l’espressione del nostro esempio precedente, utilizzeremo quindi la seguente linea di comando:

  mimetex "c=\frac{\sqrt{a^2+b^2}} {a^2+b^2}" -e test.gif

MimeTex è disponibile in formato sorgente o in formato eseguibile precompilato per le principali piattaforme:

  • Windows
  • Linux (i386)
  • FreeBSD (i386)
  • NetBSD (i386)
  • Sparc/Solaris8
  • Alpha/VMS
  • VAX/VMS

Compilarne una versione per OsX è semplice.

Scaricato e scompattato il pacchetto con i sorgenti, con il Terminale ci posizioniamo all’interno della directory appena creata e lanciamo il compilatore:

cc -DAA mimetex.c gifsave.c -lm -o mimetex

Potremo poi spostare l’eseguibile ottenuto in /usr/local/bin, ~/bin o dove più ci aggrada.

Chi non ha XCode installato può scaricare il binario da qui: mimetex 1.70

Tags: , ,