Sto sperimentando con la creazione di una piccola libreria/DSL per la sintesi di immagini in Clojure. Fondamentalmente l'idea è di consentire agli utenti della libreria di comporre insiemi di funzioni matematiche per creare proceduralmente immagini interessanti.DSL per sintesi immagine Clojure
Le funzioni devono operare su valori doppi e assumere la forma di convertire un vettore di posizione in un valore di colore, ad es. (X, y, z) -> (r, g, b, a)
Comunque sto affrontando un paio di decisioni di progettazione interessanti:
- Ingressi potrebbe avere 1,2,3 o forse anche 4 dimensioni (x, y, z più tempo)
- Sarebbe opportuno fornire operazioni matematiche vettoriali (dot products, addizione, moltiplicazione, ecc.)
- Sarebbe utile comporre funzioni con operazioni quali rotazione, scala ecc.
- Per motivi di prestazioni, è importante utilizzare la doppia matematica primitiva in tutto (evitare cioè di creare riquadri oubles in particolare). Quindi una funzione che deve restituire componenti rossi, verdi e blu, forse deve diventare tre funzioni separate che restituiscono rispettivamente i valori primitivi rosso, verde e blu.
Qualche idea su come questo tipo di DSL può essere ragionevolmente raggiunto in Clojure (1.4 beta)?
Got qualsiasi progetto di pezzi iniziali di fino su GitHub? – rplevy
https://github.com/mikera/clisk – mikera
sei a conoscenza di pan (e del mio pancito, che era una copia di puro haskell). quella era una libreria basata su haskell che faceva proprio questo. probabilmente puoi trovare su Google alcune informazioni. potrebbe darti qualche idea. [...] http: // conal.net/Pan/(se speri di generare qualcosa di bello, non scoraggiarti - sono ancora stupito di come Conal sia riuscita a generare immagini così brutte da una libreria così potente). ps pancito troppo http://www.acooke.org/pancito-code/ –