azoun

Risposte nei forum create

Stai visualizzando 15 risposte – dal 16 al 30 (di 112 totali)
  • Autore
    Risposte
  • in risposta a: LuaSketch….od almeno ci si prova #60247
    Up
    0
    Down
    ::

    ansys” post=62136Ad essere belli, sono belli; ma se non si vede il codice servono a poco 🙂 .

    Ciao
    Orlando

    Bé…. se volete vedere il codice, ecco quello della seconda figura:

    `
    % !TEX encoding = UTF-8
    % !TEX program = LuaLaTeX
    % !TEX spellcheck = en_GB
    \documentclass{report}%standalone}

    \usepackage[%showframe,
    a4paper,
    margin = 1cm]{geometry}

    \usepackage{tikz}
    \usetikzlibrary{arrows}

    \input{ProveSingoleFunzioni_Fun.tex}

    \directlua{
    require “math”
    dofile(“Lua/BasicFunctions.lua”)
    dofile(“Lua/CreateObjects.lua”)
    dofile(“Lua/3Dfunctions.lua”)
    dofile(“Lua/PrintTikZfunctions.lua”)
    }

    \begin{document}
    \centering
    \begin{tikzpicture}[line join=round,thick,>=angle 45]
    \colorlet{plume}{brown}
    \directlua{
    eye = {5,-5,5.5}
    look_at = {0,0,0}
    theta = 0

    %%%%%%%%%%%%%%%%%%%%
    % REFERENCES AXIS %
    %%%%%%%%%%%%%%%%%%%%
    refAxisLength = 3
    O = {0,0,0}
    refX = {refAxisLength,0,0}
    refY = {0,refAxisLength,0}
    refZ = {0,0,refAxisLength}
    refAxis = Group(PointsCurve({O,refX},”->”),
    PointsCurve({O,refY},”->”),
    PointsCurve({O,refZ},”->”),
    Node(refX,”left”,”$x$”),
    Node(refY,”right”,”$y$”),
    Node(refZ,”above”,”$z$”))

    %%%%%%%%%
    % TORUS %
    %%%%%%%%%
    R = 3.2
    rr = 1
    rz = 3
    CenterPoint = {0,0,0}
    nU = 100
    nV = 10
    torus = Torus(R,rr,rz,CenterPoint,nU,nV,”fill=plume,fill opacity=.2″,”half”)

    %%%%%%%%%%%%%%%%%%%%%
    % CROSSING I xR-rr %
    %%%%%%%%%%%%%%%%%%%%%%
    xII = R+.5
    PIIin = {xII, math.sqrt((R+A)^2-xII^2),z}
    PIIout = {xII,-math.sqrt((R+A)^2-xII^2),z}

    InnerLeftLaser = PointsCurve({PIIin,PIIout},”red,dashed”)

    %%%%%%%%%%%%%%%%%%%%%%%
    % INNER CIRCUMFERENCE %
    %%%%%%%%%%%%%%%%%%%%%%%
    alphaIN = 102.5
    alphaINdashed = 360-alphaIN

    InnerCircumference = Arc(R-rr,O,alphaIN,alphaIN,””)
    InnerCircumference = rotate(InnerCircumference,O,{0,0,1},135-alphaIN/2)

    InnerCircumferenceDashed = Arc(R-rr,O,alphaINdashed,alphaINdashed,”dashed”)
    InnerCircumferenceDashed = rotate(InnerCircumferenceDashed,O,{0,0,1},135-alphaINdashed/2-180)

    %%%%%%%%%%%%%%%%%%%%%%%
    % OUTER CIRCUMFERENCE %
    %%%%%%%%%%%%%%%%%%%%%%%
    alphaOUT = 180
    alphaOUTdashed = 360-alphaOUT

    OuterCircumference = Arc(R+rr,O,alphaOUT,alphaOUT,””)
    OuterCircumference = rotate(OuterCircumference,O,{0,0,1},-135)

    OuterCircumferenceDashed = Arc(R+rr,O,alphaOUTdashed,alphaOUTdashed,”dashed”)
    OuterCircumferenceDashed = rotate(OuterCircumferenceDashed,O,{0,0,1},45)

    %%%%%%%%%%%%%%%%
    % RISING PHASE %
    %%%%%%%%%%%%%%%%
    RisingPhase = Polygon(“fill=green!60!black,fill opacity=.5″,{R-rr,0,0},{R,0,rz},{R-rr,0,rz})

    %%%%%%%%%%
    % LASERS %
    %%%%%%%%%%
    yL = -6

    %-> Central Laser
    PIL1 = {xI,yL,z}
    PIL2 = {0,0,z}
    PIL3 = {xI,-yL,z}
    OuterCentralLaser1 = PointsCurve({PIL1,PIin2},”red,overlay”)
    OuterCentralLaser2 = PointsCurve({PIout2,PIL2},”red,overlay”)
    OuterCentralLaser3 = PointsCurve({PIL2,PIin1},”red,overlay”)
    OuterCentralLaser4 = PointsCurve({PIout1,PIL3},”red,overlay”)

    %-> Outer Laser
    PIIL = {xII,yL,z}
    PIIL2 = {xII,-yL,z}
    OuterLeftLaser1 = PointsCurve({PIIL,PIIout},”red,overlay”)
    OuterLeftLaser2 = PointsCurve({PIIin,PIIL2},”red,overlay”)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % PARTICLES TRAJECTORIES RIGHT %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    TrajectoriesLeft = Group()

    n = 50

    for i=1,4 do
    RadiusX = (1-(i-1)/4)*rr
    RadiusZ = (1-(i-1)/4)*rz
    Radius = R-rr+RadiusX
    Xformula = Radius..”+”..RadiusX..”*math.cos(v)”
    Zformula = RadiusZ..”*math.sin(v)”

    TrajectoriesLeft = ParametricCurve(“v”,Xformula,
    “0”,
    Zformula,
    0,
    math.pi,
    n,
    “<-") end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PARTICLES TRAJECTORIES CENTER % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TrajectoriesRight1 = Group() TrajectoriesRight2 = Group() n = 50 for i=1,4 do RadiusX = (1-(i-1)/4)*rr RadiusZ = (1-(i-1)/4)*rz Radius = R-rr+RadiusX Yformula1 = Radius.."+"..RadiusX.."*math.cos(v)" Yformula2 = "-"..Radius.."+"..RadiusX.."*math.cos(v)" Zformula = RadiusZ.."*math.sin(v)" TrajectoriesRight1[i] = ParametricCurve("v","0", Yformula1, Zformula, 0, math.pi, n, "<-") TrajectoriesRight2[i] = ParametricCurve("v","0", Yformula2, Zformula, 0, math.pi, n, "->“)

    end

    %%%%%%%%%%%%%%%
    % NOZZLE AXIS %
    %%%%%%%%%%%%%%%
    H = rz+3
    hp = .6
    nA1 = {0,0,H}
    nA2 = {0,0,hp}
    nozzleAxis1 = PointsCurve({O,nA2},”loosely dashed”)
    nozzleAxis2 = PointsCurve({nA2,nA1},”loosely dashed”)

    %%%%%%%%%%
    % LABELS %
    %%%%%%%%%%
    Lcl = Node(PIL3,”red,above,overlay”,”Center laser position”)
    Lll = Node(PIIL2,”red,above,overlay”,”Left laser position”)

    dl = Special(“\string\\draw[latex-latex] (VAR1)–(VAR2)node[sloped,midway,fill=white]{$d_l$};”,PIL1,PIIL)

    CP1 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=south east]{1};”,PIin2)
    CP2 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=north west]{2};”,PIout2)
    CP3 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=east]{3};”,PIin1)
    CP4 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=north west]{4};”,PIout1)

    LP1 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=north west]{1};”,PIIout)
    LP2 = Special(“\string\\fill[red] (VAR1)circle[radius=.071]”..
    “node[anchor=north west]{2};”,PIIin)

    Lrp = Special(“\string\\draw[line width=.4cm,green!60!black,opacity=.5,overlay] (VAR1)–++(.4,0)node[black,opacity=1,anchor=west,inner xsep=1pt,line width=.5pt]{= Rising phase};”,{R+1,R+.5,rz/2})

    Lna = Node(nA1,”above”,”Nozzle axis”)

    Labels = Group(Lcl,Lll,dl,CP1,CP2,CP3,CP4,LP1,LP2,Lrp,Lna)

    %%%%%%%%%
    % SCENA %
    %%%%%%%%%
    scena = CreateScene(“nozzleAxis1”,
    “OuterCentralLaser2”,
    “OuterLeftLaser2”,
    “OuterCentralLaser4”,
    “InnerCentralLaser1”,
    “InnerCentralLaser2”,
    “InnerLeftLaser”,
    “InnerCircumference”,
    “InnerCircumferenceDashed”,
    “OuterCircumference”,
    “OuterCircumferenceDashed”,
    “torus”,
    “OuterCentralLaser1”,
    “OuterLeftLaser1”,
    “OuterCentralLaser3”,
    “TrajectoriesLeft”,
    “TrajectoriesRight1”,
    “TrajectoriesRight2”,
    “RisingPhase”,
    “nozzleAxis2”,
    “Labels”
    % ,”refAxis”

    )

    PrintTikZ(eye,look_at,theta,scena)

    }
    \end{tikzpicture}
    \end{document}
    `

    Con le figure che ho postato speravo di incuriosire qualcuno….

    Quando riuscirò a mettere il render al tutto, ovviamente il codice si accorcerebbe un bel po’

    Saluti

    Michele

    in risposta a: LuaSketch….od almeno ci si prova #60245
    Up
    0
    Down
    ::


    Ciao a tutti,

    in questi giorni sto scrivendo la tesi e per l’occasione sto usando il codice Lua da me scritto per fare dei disegni 3D. Ecco i risultati

    Purtroppo prima di incominciare a scrivere non sono riuscito a scrivere la parte d codice che riguarda il rendering, quindi quando creo la scena praticamente fornisco la lista degli oggetti da stampare nell’ordine giusto.

    Rispetto alla volta precedente ho creato delle funzioni in più come la forma del toroide,e la funzione special, analoga a quella di Sketch.

    Una volta che si conosce come funziona il tutto, si può ottenere dei risultati veramente ottimi.

    Comunque, quando finalmente avrò fatto la difesa della tesi, se qualcuno si vuole unire a questo progetto, ne sarei molto contento. Potrebbe nascere qualcosa di molto interessante.

    Saluti

    Michele

    in risposta a: [risolto] Rimuovere numero teorema. #62709
    Up
    0
    Down
    ::


    Confermo la soluzione di Lorenzo Pantieri.

    Grazie mille.

    Michele

    in risposta a: LuaSketch….od almeno ci si prova #60243
    Up
    0
    Down
    ::

    Prima di reinventare la ruota io darei un’occhiata alla possibilità di caricare librerie scritte in altri linguaggi. Questa è una caratteristica importante di Lua, implementata a basso livello in modo da renderla indipendente dal sistema operativo (più o meno).
    La chiamata dovrebbe essere questa qui:
    http://www.lua.org/manual/5.1/manual.html#pdf-package.loadlib

    Ci sono diverse librerie in giro. Io comincerei a vedere se si può integrare nel codice Lua la GSL: http://www.gnu.org/software/gsl/

    Bé… se vogliamo approfondire questo aspetto allora c’è anche il binding tra Lua e OpenGL, cioé LuaGL e tutto il 3D(soprattutto il rendering) potrebe essere fatto fare a lui.

    Purtroppo su questo aspetto della programmazione(binding, librerie etc etc) sono un completo ignorante.

    Basti pensare che ho installato LuaForWindows ed alla linea CLUAINPUT del file texmf.cnf di LuaTeX ho messo il percorso della cartella dove ci sono tutti i bindings con le librerie C. Alcune funzionano ed altre no ed il motivo per me è completamente ignoto.

    Per quanto riguarda il progettino che sto facendo, il codice originale di Sketch non si appoggia su nessuna libreria C per fare operazioni vettoriali(basti guardare il file geometry.c dove sono definite le funzioni dot, cross etc…), probabilmente per essere indipendente da qualsiasi libreria ed io ho seguito la stessa scelta.

    Comunque sono aperto a qualsiasi consiglio, istruzione.

    Fatemi sapere.

    Saluti

    Michele

    in risposta a: LuaSketch….od almeno ci si prova #60241
    Up
    0
    Down
    ::

    Molto interessante.

    Non ho capito il problema della mancanza di funzioni per il calcolo vettoriale.
    Sono presenti sia in Matlab che in Sketch.

    Ciao,
    Agostino

    …ma non in Lua, o meglio c’è la libreria numlua ma è un progetto “nuovo” ed in costate evoluzione, quindi ho deciso che man mano che mi servivano delle funzioni “base” le avrei scritte io.

    La mia idea, comunque, è quella di non scrivere funzioni “complicate” come lo sweep di Sketch, ma eventualmente di scrivere un plug-in di Blender che esporti i modelli come li ho organizzati io(così finalmente imparare ad usare Python).

    Michele

    in risposta a: LuaSketch….od almeno ci si prova #60238
    Up
    0
    Down
    ::


    Aggiornamenti per chi fosse interessato:

    Ho dato una bella pulita e riorganizzata a tutto il codice Lua ed ora con un codice come il seguente:

    `% !TEX encoding = UTF-8
    % !TEX program = LuaLaTeX
    % !TEX spellcheck = en_GB
    \documentclass{standalone}

    \usepackage{tikz}

    \directlua{
    require “math”
    dofile(“BasicFunctions.lua”)
    dofile(“CreateObjects.lua”)
    dofile(“3Dfunctions.lua”)
    dofile(“PrintTikZfunctions.lua”)
    }

    \begin{document}
    \begin{tikzpicture}[line join=round]
    \directlua{
    eye = {5,5,4}
    look_at = {1,3,2}
    theta = 0

    lp = 7
    pavimento = Polygon({-lp,-lp,0},
    { lp,-lp,0},
    { lp, lp,0},
    {-lp, lp,0})

    Hlegs = 5
    gamba1 = Parallelepiped({-(lp-1),-(lp-1),0},{.7,.7,Hlegs})
    Relica = .7
    elica1 = ParametricCurve(“t”,”-5.65+”..Relica..”*math.cos(2*math.pi*t)”,
    “-5.65+0.7*math.sin(2*math.pi*t)”,
    “5*t/(2*math.pi)”,
    0,
    2*math.pi,
    150)

    gamba2 = translate(gamba1,{11,0,0})
    gamba3 = translate(gamba1,{11,11,0})
    gamba4 = translate(gamba1,{0,11,0})
    tavola = Parallelepiped({-6.5,-6.5,Hlegs},{13,13,.5})

    base_vaso = Arc(.25,{1,2,5.5},360,10)
    vaso = Cylinder(base_vaso.points,{0,0,1},1)

    ellissoide = Ellipsoid(1.5,1,.5,{0,-4,6},20,5)
    ellissoide = rotate(ellissoide,{0,-4,6},{0,0,1},30)

    sfera = Sphere(.5,{0,4,6},20,5)
    sfera = rotate(sfera,{0,4,6},{1,1,0},30)

    scena = CreateScene(“pavimento”,
    “gamba1″,”gamba2″,”gamba3″,”gamba4”,
    “tavola”,”sfera”,”ellissoide”,”vaso”)

    PrintTikZ(eye,look_at,theta,scena)

    }
    \end{tikzpicture}
    \end{document}`

    ottengo:

    La differenza rispetto a prima è il fatto che non vengono stampati i poligoni le cui normali non sono rivolte verso l’osservatore.

    L’obbiettivo ora è di stampare gli oggetti in modo ordinato in modo da nascondere le zone nascoste da oggetti che si trovano più vicino all’osservatore.

    Successivamente vorrei aggiungere l’opzione della prospettiva.

    Domanda: c’è un modo per tenere le variabili che si creano solamente dentro un \directlua senza renderle globali?

    Saluti

    Michele

    in risposta a: Catturare e formattare la prima parola di una frase #60848
    Up
    0
    Down
    ::


    Ritento la fortuna. Eccome come espande la macro senza @

    `\@fmtfirsttoken{\bfseries}{This}{has to be tested}`

    ed a sua volta

    `\itshape\bfseries{This} has to be tested`

    Domanda: quando \@fmtfirsttoken “legge” #2, tutti caratteri prima della spazio sono considerati un unico token?

    in risposta a: Catturare e formattare la prima parola di una frase #60846
    Up
    0
    Down
    ::


    Ciao, scusate se mi intrometto ma, per esercizio, voglio provare a leggere la macro che ha fornito egreg9.

    Allora:

    La macro \fmtfirsttoken passa due dei tre input della macro \@fmtfirsttoken e nello specifico lo stile della prima parola(#1) ed il testo della frase da cui essa viene presa(#2) in modo tale che sia espansa prima la seconda(#2) e la terza(#3).

    Quindi definito \mytext come nell’esempio, scrivere
    `\fmtfirsttoken{\bfseries}{\mytext}`
    è come scrivere
    `@fmtfirsttoken{\bfseries}{This has to be tested}{}`
    giusto?

    Se si, non ho capito quale parte del codice che non ho ancora descritto permette di prendere la prima parola, visto che le variabili #1 e #2 stanno entrambi dentro le graffe.

    Saluti

    Michele

    in risposta a: LuaLaTeX Passare la stringa “<" al comando tex. #60580
    Up
    0
    Down
    ::


    …..ops!!!

    Grazie

    Michele

    in risposta a: Un’immagine per copertina #60140
    Up
    0
    Down
    ::


    Da grande utilizzatore di TikZ, se la classe che utilizzi prevede l’ambiente titlepage, ti consiglierei di fare qualcosa del genere:

    `\begin{titlepage}
    \begin{tikzpicture}[remember picture,overlay]
    \node[inner sep=0pt] (copertina) at (current page.center){\includegraphics{}};

    % Altri nodi dove posizionare il titolo del tuo scritto

    \end{tikzpicture}
    \end{titlepage}`

    Per maggiori dettagli, leggi pag.203 del manuale pgfmanual(texdoc pgfmanual )

    Saluti

    Michele

    in risposta a: Consiglio su classe per CV #59979
    Up
    0
    Down
    ::


    Io uso sempre la classe europecv. E’ uno standard europeo….quindi opto sempre per quella.

    Saluti

    Michele

    in risposta a: Lua: funzioni con input una variabile di tipo struttura #59636
    Up
    0
    Down
    ::

    Scusami, non mi ero accorto che compilavi con LuaLaTeX.

    Ma figurati!!!

    Grazie a te per le risposte!!!

    Michele

    in risposta a: Lua: funzioni con input una variabile di tipo struttura #59634
    Up
    0
    Down
    ::


    Probabilmente mi perdo qualcosa….

    Se compilo questo esempio minimo:
    `
    % !TEX program = LuaLaTeX
    \documentclass{report}
    \begin{document}
    \directlua{
    A = {vertex = {{1,2,3},
    {1,2,3},
    {1,2,3},
    {1,2,3},
    {1,2,3}}}

    tex.print(#A)
    tex.print(#A.vertex)
    tex.print(#A.vertex[1])
    }
    \end{document}`

    ottengo il seguente errore:
    `! LuaTeX error <\directlua >:1: attempt to get length of a number value
    stack traceback:
    <\directlua >:1: in main chunk.`

    Scrivo qualcosa di sbagliato?

    in risposta a: Lua: funzioni con input una variabile di tipo struttura #59632
    Up
    0
    Down
    ::


    Grazie Robitex, era un errore cretino che non mi sono accorto di fare……

    Ti faccio notare che getn() è un metodo deprecato. Per trovare la lunghezza della tabella usa l’operatore # .

    Per quanto rigurda getn(), lo uso perché se uso # mi trovo con questo errore:
    `! LuaTeX error <\directlua >:1: attempt to get length of a number value
    stack traceback:
    <\directlua >:1: in function 'ProjectionOfPointOnObserverSystem'
    <\directlua >:1: in main chunk.`

    Saluti

    Michele

    in risposta a: Gestione immagini con LuaLaTeX #59440
    Up
    0
    Down
    ::


    Grazie mille, ha funzionato!!!!

    Michele

Stai visualizzando 15 risposte – dal 16 al 30 (di 112 totali)

Go to top