Ciao a tutti,
ho incominciato ad imparare ad usare Lua e di conseguenza LuaLaTeX. Visto che ci è stato un periodo in cui facevo largo uso del programma Sketch(il sito si trova qui) mi sono domandato se non era possibile fare qualcosa del genere in LuaLaTeX.
L’idea è quella di aprire un ambiente tikzpicture con dentro un comando \directlua dove dentro creare la scena e stamparla con i comandi usuali di tikz.
Con un codice del genere:
`% !TEX encoding = UTF-8
% !TEX program = LuaLaTeX
% !TEX spellcheck = en_GB
\documentclass{standalone}\usepackage{tikz}
\input{LuaSketch.tex}
\begin{document}
\centering\begin{tikzpicture}[line join=round]
\directlua{
eye = {0,0,5}
look_at = {1,4,0}
theta = 0lp = 7
pavimento = CreatePolygon({{-lp,-lp,0},
{ lp,-lp,0},
{ lp, lp,0},
{-lp, lp,0}})Hlegs = 5
gamba1 = CreateParallelepiped({-(lp-1),-(lp-1),0},{.7,.7,Hlegs})
gamba2 = translate(gamba1,{11,0,0})
gamba3 = translate(gamba1,{11,11,0})
gamba4 = translate(gamba1,{0,11,0})
tavola = CreateParallelepiped({-6.5,-6.5,0},{13,13,.5})
tavola = translate(tavola,{0,0,Hlegs})base_vaso = CreateArc(.25,{-1,-1,7.5},360,10)
vaso = CreateCylinder(base_vaso,{0,0,1},1)sfera = CreateSphere(.5,{4,0,8},10,5)
PrintTikZ(eye,look_at,theta,pavimento)
PrintTikZ(eye,look_at,theta,gamba1)
PrintTikZ(eye,look_at,theta,gamba2)
PrintTikZ(eye,look_at,theta,gamba3)
PrintTikZ(eye,look_at,theta,gamba4)
PrintTikZ(eye,look_at,theta,tavola)
PrintTikZ(eye,look_at,theta,vaso)
PrintTikZ(eye,look_at,theta,sfera)}
\end{tikzpicture}
\end{document}`Ovviamente è lontano dall’essere minimamente terminato questo “progettino”, infatti devo aggiungere l’assegnazione dei colori agli oggetti, l’”algoritmo del pittore” e stampare la scena con un solo comando(e non con tutti i PrintTikZ che si vedono sul codice).
La difficoltà che ho incontrato, visto che uso molto Matlab, è stato gestire i vettori visto che praticamente non esitono funzioni per fare prodotti vettoriali, scalari etc.. quindi mi sono scritto io tutte le funzioni.
Per questo volevo chiedervi se siete a conoscenza di una libreria Lua che sia il corrispettivo di SciPy per Python? Magari caricando una libreria del genere renderei più facile da leggere la parte del codice Lua.
Che ne pensate? Ho scritto questo post per avere dei pareri.
Saluti
Michele
Molto interessante.
In questo periodo mi sto interessando ad un implementazione di un linguaggio specifico per la creazione di grafici utilizzando pgfplots.
Direi quindi che siamo davanti ad un “nuovo mondo” tutto da esplorare e proprio questo è un ulteriore punto di interesse visto che il modello di sviluppo non centralista della comunità TeX è messo alla prova quanto a coerenza del linguaggio dal fatto stesso che non esistono strade tracciate in questi nuovi paesaggi.
Quanto al tuo particolare esempio, io progetterei prima il linguaggio, e cioè il modo in cui l’utente interagisce concettualmente con le proprie idee, ed a questo proposito ho qualche idea.
In un secondo tempo si pensa all’implementazione che può basarsi anche sul motore METAPOST interno di LuaTeX.
Se la comunità italiana di “grafici TeX” (ovvero di quelli che programmano la grafica) è abbastanza forte potrebbe uscirne un progetto che addirittura traccia una di quelle strade di cui abbiamo parlato prima.
Bye
