π
<-
Chat plein-écran
[^]

Lecteur d'image LUA presque fini

Pour TI-Nspire OS 3.0 ou ultérieur.

Lecteur d'image LUA presque fini

Message non lude Bonjour6666 » 08 Juin 2013, 18:26

Salut tout le monde, :)
Depuis 6 heures, je planche sur un lecteur d'image fonctionnant sous Lua et permettant donc de l'insérer des des classeurs. Je suis arrivé à faire bouger l'image avec les flèches sans trop de problèmes et maintenant ça roule . Puis je suis arrivé à faire un zoom sur le même principe. Maintenant, j'aimerais associer les deux afin de pouvoir déplacer l'image avec les flèches puis de faire un zoom + avec la touche * et un zoom - avec la touche /.
Voici mon code pour déplacer l'image:
Code: Tout sélectionner
bridge1 = image.new("code de l'image")
function on.paint(gc)
gc:drawImage(bridge1,0,0)
end


local screen = platform.window

local sc = 0.5
local sd = 0.5


function on.paint(gc)

    local w = screen:width()

    local h = screen:height()

    local imw = bridge1:width()

    local imh = bridge1:height()

    local im = bridge1:copy(sd * imw, sc * imh)

    local imw = im:width(im)

    local imh = im:height(im)   

    gc:drawImage(Bridge1,w - imw ,h - imh)
   

     
end
     platform.window:invalidate()
     




        local screen = platform.window

        function on.construction()

            timer.start(1/5)

        end

        function on.timer()

            screen:invalidate()

        end

        function on.arrowUp()
       

            sc = sc - 0.1

            screen:invalidate()
           

        end

        function on.arrowDown()
       

            sc = sc + 0.1

            screen:invalidate()
           
           

        end
            local screen = platform.window

        function on.construction()

            timer.start(1/5)

        end

        function on.timer()

            screen:invalidate()

        end

        function on.arrowRight()

            sd =  sd + 0.1

            screen:invalidate()
            print(sd)

        end

        function on.arrowLeft()
       

sd = sd - 0.1
            screen:invalidate()
            print(sd)
           
end
       

... Et voici le code pour zoomer ou dézoomer:
Code: Tout sélectionner
bridge1 = image.new("code de l'image")
function on.paint(gc)
gc:drawImage(bridge1,0,0)
end


local screen = platform.window

local sd = 0.5


function on.paint(gc)

    local w = screen:width()

    local h = screen:height()

    local imw = bridge1:width()

    local imh = bridge1:height()

    local im = bridge1:copy(sd * imw, sd * imh)

    local imw = im:width(im)

    local imh = im:height(im)   

    gc:drawImage(Bridge1,w - imw ,h- imh)
   

     
end
     platform.window:invalidate()
     




        local screen = platform.window

        function on.construction()

            timer.start(1/5)

        end

        function on.timer()

            screen:invalidate()

        end

        function on.arrowUp()
       

            sd = sd - 0.1

            screen:invalidate()
           

        end

        function on.arrowDown()
       

            sc = sc + 0.1

            screen:invalidate()
           
           

        end
            local screen = platform.window

        function on.construction()

            timer.start(1/5)

        end

        function on.timer()

            screen:invalidate()

        end

        function on.arrowRight()

            sd =  sd + 0.1

            screen:invalidate()
            print(sd)

        end

        function on.arrowLeft()
       

sd = sd - 0.1
            screen:invalidate()
            print(sd)
           
end
       

...Et c'est là que je sèche: Comment faire pour associer les deux ???
Étant donné que le bac arrive à grand pas, et que l'OS 3,2 est très intéressant pour la géométrie dans l'espace, votre aide est m'arrangerait beaucoup ainsi que beaucoup de terminales S je pense... ;)
Avatar de l’utilisateur
Bonjour6666
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 9.4%
 
Messages: 2
Inscription: 18 Oct 2012, 17:54
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Lecteur d'image LUA presque fini

Message non lude Adriweb » 08 Juin 2013, 20:46

Voila un code que je viens de faire :

Code: Tout sélectionner
--[[ Simple Lua Image Viewer
. Adrien Bertrand ("Adriweb")
. Version 1.0 - June 8th 2013
. TI-Planet.org / Inspired-Lua.org
]]

theImage = image.new(...)
imgSize = { w=theImage:width(), h=theImage:height() }

function reset()
    imagePos = { x=(W-imgSize.w)/2, y=(H-imgSize.h)/2 }
    imageZoom = 1
    theTempImage = theImage:copy(imageZoom*theImage:width(), imageZoom*theImage:height())
    platform.window:invalidate()
end

on.escapeKey = reset

function on.resize(w,h)
    W,H = w,h
    reset()
    platform.window:invalidate()
end

function on.paint(gc)
    gc:drawImage(theTempImage, imagePos.x, imagePos.y)
    --gc:drawString("Zoom : "..imageZoom.."x", 2, H-22, "top")
end

function on.charIn(ch)
    if imageZoom > 0.2 then imageZoom = imageZoom + 0.1*(ch=="*" and 1 or ch=="/" and -1 or 0) end
    theTempImage = theImage:copy(imageZoom*theImage:width(), imageZoom*theImage:height())
    platform.window:invalidate()
end

function on.mouseMove(x,y)
    imagePos.x, imagePos.y = x,y
    cursor.hide()
    platform.window:invalidate()
end

function on.arrowKey(arrow)
    local deltaW, deltaH = W/50, H/50
    local deltas = { x={left=-deltaW,right=deltaW},
                     y={up=-deltaH,down=deltaH} }
    -- cay joli mais surement un poil moins rapide que des if à la chaine :P
    imagePos.x = imagePos.x + (deltas.x[arrow] or 0)
    imagePos.y = imagePos.y + (deltas.y[arrow] or 0)
   
    platform.window:invalidate()
end
Fichiers joints
imageViewer.tns
Simple Nspire-Lua image viewer
(6.19 Kio) Téléchargé 87 fois
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Lecteur d'image LUA presque fini

Message non lude Bonjour6666 » 08 Juin 2013, 21:54

Merci beaucoup. Faudra que je regarde comment t'a fais dès que j'aurais le temps parce que c'est vrai qu'il est rapide et vraiment bien fait!! :~o
Avatar de l’utilisateur
Bonjour6666
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 9.4%
 
Messages: 2
Inscription: 18 Oct 2012, 17:54
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: TS


Retourner vers Nspire-Lua

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 27 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1651 utilisateurs:
>1633 invités
>13 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)