FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Quelques applications utilisant TSL et TSV Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Quelques applications utilisant TSL et TSV Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Quelques applications utilisant TSL et TSV Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Quelques applications utilisant TSL et TSV Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Quelques applications utilisant TSL et TSV Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Quelques applications utilisant TSL et TSV Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Quelques applications utilisant TSL et TSV Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Quelques applications utilisant TSL et TSV Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Quelques applications utilisant TSL et TSV Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Quelques applications utilisant TSL et TSV Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Quelques applications utilisant TSL et TSV Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Quelques applications utilisant TSL et TSV Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Quelques applications utilisant TSL et TSV Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Quelques applications utilisant TSL et TSV Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Quelques applications utilisant TSL et TSV Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 Quelques applications utilisant TSL et TSV

Aller en bas 
AuteurMessage
Marc

Marc


Nombre de messages : 2397
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Quelques applications utilisant TSL et TSV Empty
MessageSujet: Quelques applications utilisant TSL et TSV   Quelques applications utilisant TSL et TSV EmptyMer 11 Mai 2022 - 12:50

Bonjour à tous !

Suite aux articles traitant de la colorimétrie avec les valeurs TSL et TSV que vous retrouverez en suivant ces liens,

RVB vers TSL : https://panoramic.1fr1.net/t6749-colorimetrie-convertisseur-rvb-vers-tsl
TSL vers RVB : https://panoramic.1fr1.net/t6755-colorimetrie-convertisseur-tsl-vers-rvb
RVB vers TSV : https://panoramic.1fr1.net/t6754-colorimetrie-convertisseur-rvb-vers-tsv
TSV vers RVB : https://panoramic.1fr1.net/t6756-colorimetrie-convertisseur-tsv-vers-rvb

je vous propose ci-dessous quelques applications.


TSL : créer une barre de couleurs.

Quelques applications utilisant TSL et TSV Tsldem10

Code:
' TSL : Barre de couleurs
' Marc - Mai 2022
' Ecrit en langage Panoramic

dim r%,v%,b%,i%
dim teinte,saturation,luminosite

picture 1
width 1,360
height 1,30
top 1,50
left 1,110
2d_target_is 1

teinte = 0 :' [0,359]
saturation = 100 :' [0,100%]
luminosite = 50 :' [0,100%]

for i% = 0 to 359
    tsl2rvb(i%,saturation,luminosite)
    2d_pen_color r%,v%,b%
    2d_line i%,0,i%,30
next i%

end
' ------------------------------------------------------------------------------
sub tsl2rvb(t1,s1,l1)
    dim_local var1,var2

    t1 = t1 / 360
    s1 = s1 / 100
    l1 = l1 / 100
    
    if s1 = 0
        r% = int(l1*255)
        v% = int(l1*255)
        b% = int(l1*255)
    else
        if (l1 < 0.5)
            var2 = l1 * (1 + s1)
        else
            var2 = (l1 + s1) - (s1 * l1)
        end_if
        var1 = 2 * l1 - var2

        r% = 255 * teinteRVB(var1,var2,t1 + (1/3))
        v% = 255 * teinteRVB(var1,var2,t1 )
        b% = 255 * teinteRVB(var1,var2,t1 - (1/3))
   end_If
end_sub
' ------------------------------------------------------------------------------
fnc teinteRVB(v1,v2,vH)
   if vH < 0 then vH = vH + 1
   if vH > 1 then vH = vH - 1
   if 6 * vH < 1 then result (v1 + (v2 - v1) * 6 * vH) : exit_fnc
   if 2 * vH < 1 then result (v2 )  : exit_fnc
   if 3 * vH < 2 then result (v1 + (v2 - v1) * ((2/3) - vH) * 6)  : exit_fnc
   result v1
end_fnc
' ------------------------------------------------------------------------------





TSV : idem que ci-dessus, créer une barre de couleurs.

Quelques applications utilisant TSL et TSV Tsvdem10

Code:
' TSV : barre de couleurs
' Marc - Mai 2022
' Ecrit en langage Panoramic

dim r%,v%,b%,i%
dim teinte,saturation,valeur

picture 1
width 1,360
height 1,30
top 1,50
left 1,110
2d_target_is 1

teinte = 0 :' [0,359]
saturation = 100 :' [0,100]
valeur = 100 :' [0,100]

for i% = 0 to 359
    calculRVB(i%,saturation,valeur)
    2d_pen_color r%,v%,b%
    2d_line i%,0,i%,30
next i%

end
' ------------------------------------------------------------------------------
sub calculRVB(t1,s1,v1)
    dim_local i%, f, p, q, t, rg, vt, bl

    s1 = s1 / 100
    v1 = v1 / 100
    
    If s1 = 0
        rg = v1
        v1 = v1
        bl = v1
    else
        if t1 = 360
            t1 = 0
        else
            t1 = t1 / 60
        end_if
        
        i% = int(t1)
        f = t1 - i%
        p = v1 * (1 - s1)
        q = v1 * (1 - (s1 * f))
        t = v1 * (1 - (s1 * (1 - f)))
        rg = v1
        vt = p
        bl = q
        select i%
            case 0
                rg = V1
                vt = t
                bl = p
            case 1
                rg = q
                vt = V1
                bl = p
            case 2
                rg = p
                vt = V1
                bl = t
            case 3
                rg = p
                vt = q
                bl = V1
            case 4
                rg = t
                vt = p
                bl = V1
        end_select
    end_if
    r% = int(rg * 255)
    v% = int(vt * 255)
    b% = int(bl * 255)
end_sub



Petit utilitaire de comparaison TSL vs TSV.
Les calculs et l'affichage prennent un certain temps… Cela crée une latence sur les mouvements des curseurs de réglage.

Quelques applications utilisant TSL et TSV Tsl-ts10

Code:
' TSL / TSV : démonstration
' Barre de teintes + réglages saturation et luminosité/valeur
' Marc - Mai 2022
' Ecrit en langage Panoramic

dim r%,v%,b%,i%,null%,xSouris%
dim teinteTSL,saturationTSL,luminositeTSL
dim teinteTSV,saturationTSV,valeurTSV

label reglagesaturationTSL, reglageluminositeTSL
label reglagesaturationTSV, reglagevaleurTSV

interfaceUtilisateur()

end
' ------------------------------------------------------------------------------
sub interfaceUtilisateur()
    width 0,width(0) - width_client(0) + 500
    height 0,height(0) - height_client(0) + 500
    left 0,(screen_x - width(0)) / 2
    top 0,(screen_y - height(0)) / 2
    color 0,255,255,255
    caption 0,"PANORAMIC Démonstration TSL / TSV"

    ' PICTURE non visible servant de planche à dessins
    create_hide
    picture 1
    create_show
    
    ' zones mémoire pour stocker les dessins
    image 2
    image 3

    ' dessiner modèle potentiometres
    dessinerModelePotentiometre()

    ' creer module interface TSL
    moduleTSL()
    
    ' creer module interface TSV
    moduleTSV()
    
    ' préréglage des valeurs de départ
    prereglages()
    
end_sub
' ------------------------------------------------------------------------------
sub dessinerModelePotentiometre()
    2d_target_is 1

    ' dessiner le décor de fond du potentiomètre
    width 1,108
    height 1,44
    color 1,255,255,255
    2d_pen_color 153,153,153
    2d_rectangle 0,21,108,23
  
    ' copie du dessin effectué (décor de fond) en mémoire dans l'objet IMAGE 2
    2d_image_copy 2,0,0,108,44

    ' dessiner le bouton du potentiomètre
    color 1,0,0,0 :' effacer planche à dessin (picture 1)
    2d_pen_color 0,120,215
    2d_fill_color 0,120,215
    2d_rectangle 0,21,107,23
    2d_rectangle 101,11,107,33
    2d_line 102,10,106,10
    2d_line 100,12,100,32
    2d_line 107,12,107,32
    2d_line 102,33,106,33

    ' copie du dessin effectué (bouton) en mémoire dans l'objet IMAGE 3
    2d_image_copy 3,0,0,108,44
end_sub
' ------------------------------------------------------------------------------
sub creerPotentiometre(n%,x%,y%)
    ' Corps du potentiomètre
    scene2d n%
    top n%,y%
    left n%,x%
    width n%,108
    height n%,44
    sprite_target_is n%

    sprite_create_hide

    ' creer sprite servant d'image de fond et copier le dessin dessus
    sprite n%
    sprite_image_load n%,2
    sprite_position n%,0,0
 
    ' creer le sprite du bouton et copier le dessin dessus
    sprite n%+1
    sprite_image_load n%+1,3
    sprite_position n%+1,-100,0

    sprite_show n%
    sprite_show n%+1
end_sub
' ------------------------------------------------------------------------------
sub moduleTSL()
    container 20
    top 20,20
    left 20,20
    height 20,220
    width 20,460
    color 20,255,255,255
    caption 20," TSL "
    command_target_is 20
    
    creerPotentiometre(35,175,100) :' Saturation
    creerPotentiometre(40,175,150) :' Luminosité

    ' zone test rendu des couleurs
    picture 4
    width 4,360
    height 4,30
    top 4,50
    left 4,50
    2d_target_is 4

    ' légendes
    alpha 10
    top 10,35
    left 10,50
    caption 10,"0°"
    
    alpha 11
    top 11,35
    left 11,215
    caption 11,"teinte"
    
    alpha 12
    top 12,35
    left 12,400
    caption 12,"359°"
    
    alpha 13
    top 13,115
    left 13,110
    caption 13,"Saturation"
    
    alpha 14
    top 14,165
    left 14,110
    caption 14,"Luminosité"
    
    alpha 15
    top 15,115
    left 15,300
    
    alpha 16
    top 16,165
    left 16,300
    
    on_mouse_down 35,reglagesaturationTSL    
    on_mouse_down 40,reglageluminositeTSL    
end_sub
' ------------------------------------------------------------------------------
sub moduleTSV()
    command_target_is 0
    container 21
    top 21,260
    left 21,20
    height 21,220
    width 21,460
    color 21,255,255,255
    caption 21," TSV "
    command_target_is 21
    
    creerPotentiometre(45,175,100) :' Saturation
    creerPotentiometre(50,175,150) :' Luminosité

    ' zone test rendu des couleurs
    picture 5
    width 5,360
    height 5,30
    top 5,50
    left 5,50
    2d_target_is 5

    ' légendes
    alpha 22
    top 22,35
    left 22,50
    caption 22,"0°"
    
    alpha 23
    top 23,35
    left 23,215
    caption 23,"teinte"
    
    alpha 24
    top 24,35
    left 24,400
    caption 24,"359°"
    
    alpha 25
    top 25,115
    left 25,110
    caption 25,"Saturation"
    
    alpha 26
    top 26,165
    left 26,130
    caption 26,"Valeur"
    
    alpha 27
    top 27,115
    left 27,300
    
    alpha 28
    top 28,165
    left 28,300
    
    on_mouse_down 45,reglagesaturationTSV    
    on_mouse_down 50,reglagevaleurTSV    
end_sub
' ------------------------------------------------------------------------------
reglagesaturationTSL:
    off_mouse_down 35
    ' inhibition bouton droit souris
    if mouse_right_down(35)=1
        on_mouse_down 35,reglagesaturationTSL    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(35)
    null% = mouse_left_down(35)

    2d_target_is 4
    
    while mouse_left_up(35) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(35) - 104
        if xSouris% < -100 :' limite gauche
            sprite_x_position 36,-100
        end_if
        if xSouris% > 0
            sprite_x_position 36,0 :' limite droite
        end_if
        if xSouris% > -105 and xSouris% < 0
            sprite_x_position 36,xSouris%
        end_if
        saturationTSL = sprite_x_position(36)
        saturationTSL = 100 + saturationTSL
        caption 15,str$(saturationTSL)+"%"
        for i% = 0 to 360
            tsl2rvb(i%,saturationTSL,luminositeTSL)
            2d_pen_color r%,v%,b%
            2d_line i%,0,i%,30
        next i%
    end_while
    on_mouse_down 35,reglagesaturationTSL    
return
' ------------------------------------------------------------------------------
reglageluminositeTSL:
    off_mouse_down 40
    ' inhibition bouton droit souris
    if mouse_right_down(40)=1
        on_mouse_down 40,reglageluminositeTSL    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(40)
    null% = mouse_left_down(40)

    2d_target_is 4

    while mouse_left_up(40) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(40) - 104
        if xSouris% < -100 :' limite gauche
            sprite_x_position 41,-100
        end_if
        if xSouris% > 0
            sprite_x_position 41,0 :' limite droite
        end_if
        if xSouris% > -100 and xSouris% < 0
            sprite_x_position 41,xSouris%
        end_if
        luminositeTSL = sprite_x_position(41)
        luminositeTSL = luminositeTSL + 100
        caption 16,str$(luminositeTSL)+"%"
        for i% = 0 to 360
            tsl2rvb(i%,saturationTSL,luminositeTSL)
            2d_pen_color r%,v%,b%
            2d_line i%,0,i%,30
        next i%
    end_while
    on_mouse_down 40,reglageluminositeTSL    
return
' ------------------------------------------------------------------------------
reglagesaturationTSV:
    off_mouse_down 45
    ' inhibition bouton droit souris
    if mouse_right_down(45)=1
        on_mouse_down 45,reglagesaturationTSV    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(45)
    null% = mouse_left_down(45)

    2d_target_is 5

    while mouse_left_up(45) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(45) - 104
        if xSouris% < -100 :' limite gauche
            sprite_x_position 46,-100
        end_if
        if xSouris% > 0
            sprite_x_position 46,0 :' limite droite
        end_if
        if xSouris% > -100 and xSouris% < 0
            sprite_x_position 46,xSouris%
        end_if
        saturationTSV = sprite_x_position(46)
        saturationTSV = 100 + saturationTSV
        caption 27,str$(saturationTSV)+"%"
        for i% = 0 to 359
            tsv2rvb(i%,saturationTSV,valeurTSV)
            2d_pen_color r%,v%,b%
            2d_line i%,0,i%,30
        next i%
    end_while
    on_mouse_down 45,reglagesaturationTSV    
return
' ------------------------------------------------------------------------------
reglagevaleurTSV:
    off_mouse_down 50
    ' inhibition bouton droit souris
    if mouse_right_down(50)=1
        on_mouse_down 50,reglagevaleurTSV    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(50)
    null% = mouse_left_down(50)

    2d_target_is 5

    while mouse_left_up(50) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(50) - 104
        if xSouris% < -100 :' limite gauche
            sprite_x_position 51,-100
        end_if
        if xSouris% > 0
            sprite_x_position 51,0 :' limite droite
        end_if
        if xSouris% > -100 and xSouris% < 0
            sprite_x_position 51,xSouris%
        end_if
        valeurTSV = sprite_x_position(51)
        valeurTSV = valeurTSV + 100
        caption 28,str$(valeurTSV)+"%"
        for i% = 0 to 359
            tsv2rvb(i%,saturationTSV,valeurTSV)
            2d_pen_color r%,v%,b%
            2d_line i%,0,i%,30
        next i%
    end_while
    on_mouse_down 50,reglagevaleurTSV    
return
' ------------------------------------------------------------------------------
sub tsl2rvb(t1,s1,l1)
    dim_local var1,var2

    t1 = t1 / 360
    s1 = s1 / 100
    l1 = l1 / 100
    
    if s1 = 0
        r% = int(l1*255)
        v% = int(l1*255)
        b% = int(l1*255)
    else
        if (l1 < 0.5)
            var2 = l1 * (1 + s1)
        else
            var2 = (l1 + s1) - (s1 * l1)
        end_if
        var1 = 2 * l1 - var2

        r% = 255 * teinteTSLRVB(var1,var2,t1 + (1/3))
        v% = 255 * teinteTSLRVB(var1,var2,t1 )
        b% = 255 * teinteTSLRVB(var1,var2,t1 - (1/3))
   end_If
end_sub
' ------------------------------------------------------------------------------
fnc teinteTSLRVB(v1,v2,vH)
   if vH < 0 then vH = vH + 1
   if vH > 1 then vH = vH - 1
   if 6 * vH < 1 then result (v1 + (v2 - v1) * 6 * vH) : exit_fnc
   if 2 * vH < 1 then result (v2 )  : exit_fnc
   if 3 * vH < 2 then result (v1 + (v2 - v1) * ((2/3) - vH) * 6)  : exit_fnc
   result v1
end_fnc
' ------------------------------------------------------------------------------
sub tsv2rvb(t1,s1,v1)
    dim_local i%, f, p, q, t, rg, vt, bl

    s1 = s1 / 100
    v1 = v1 / 100
    
    If s1 = 0
        rg = v1
        vt = v1
        bl = v1
    else
        if t1 = 360
            t1 = 0
        else
            t1 = t1 / 60
        end_if
        
        i% = int(t1)
        f = t1 - i%

        p = v1 * (1 - s1)
        q = v1 * (1 - (s1 * f))
        t = v1 * (1 - (s1 * (1 - f)))
        
        rg = v1
 vt = p
 bl = q
        
        select i%
            case 0
        rg = V1
 vt = t
 bl = p
            case 1
 rg = q
 vt = V1
 bl = p
            case 2
 rg = p
 vt = V1
 bl = t
            case 3
 rg = p
 vt = q
 bl = V1
    case 4
 rg = t
 vt = p
 bl = V1
         end_select
    end_if

    r% = int(rg * 255)
    v% = int(vt * 255)
    b% = int(bl * 255)
end_sub
' ------------------------------------------------------------------------------
sub prereglages()
    teinteTSL = 0 :' [0,359]
    saturationTSL = 100 :' [0,100%]
    luminositeTSL = 50 :' [0,100%]

    sprite_x_position 36,0
    caption 15,"100%"

    sprite_x_position 41,-50
    caption 16,"50%"

    2d_target_is 4
    for i% = 0 to 359
        tsl2rvb(i%,saturationTSL,luminositeTSL)
        2d_pen_color r%,v%,b%
        2d_line i%,0,i%,30
    next i%

    teinteTSV = 0 :' [0,359]
    saturationTSV = 100 :' [0,100%]
    valeurTSV = 100 :' [0,100%]

    sprite_x_position 46,0
    caption 27,"100%"

    sprite_x_position 51,0
    caption 28,"100%"

    2d_target_is 5
    for i% = 0 to 359
        tsv2rvb(i%,saturationTSV,valeurTSV)
        2d_pen_color r%,v%,b%
        2d_line i%,0,i%,30
    next i%
end_sub




TLS : Obtenir des dégradés d’une teinte.

Quelques applications utilisant TSL et TSV Tsldeg10

Code:
' Creer des degradés d'une teinte
' Marc - Mai 2022
' écrit en langage Panoramic

dim r%,v%,b%
dim t,s,l

label choixTeinte

interfaceUtilisateur()

end
' ------------------------------------------------------------------------------
sub interfaceUtilisateur()
    dim_local pas%, n%
    left 0,(screen_x - width(0))/2
    top 0,(screen_y - height(0))/2
    color 0,255,255,255

    ' dessiner la barre du choix de la teinte
    picture 1
    width 1,360
    height 1,30
    top 1,50
    left 1,110
    2d_target_is 1
    cursor_cross 1
    on_click 1,choixTeinte
    
    ' colorier la barre du chois de la teinte
    s = 1 :' valeurs admises dans l'intervalle [0,1]
    l = 0.50 :' valeurs admises dans l'intervalle [0,1]
    n% = 0
    for t = 0 to 1 step 0.002777778
        TSL2RVB(t,s,l)
        2d_pen_color r%,v%,b%
        2d_line n%,0,n%,30
        n% = n% + 1
    next t

    ' dessiner la barre de dégradés
    pas% = 110
    for n% = 2 to 26
        picture n%
        left n%,pas%
        top n%,120
        width n%,14
        height n%,30
        pas% = pas% + 14
    next n%

    ' légendes
    alpha 30
    top 30,35
    left 30,110
    caption 30,"Cliquez sur une teinte pour obtenir des dégradés"
end_sub
' ------------------------------------------------------------------------------
sub creerDegrade()
    dim_local pas, n%
    RVB2TSL(r%,v%,b%)
    pas = 0
    for n% = 2 to 26
        TSL2RVB(t,s,pas)
        color n%,r%,v%,b%
        pas = pas + 0.04
    next n%
end_sub
' ------------------------------------------------------------------------------
sub RVB2TSL(r1,v1,b1)
    dim_local mini, maxi, ecart

    ' conversion rvb dans l'intervalle [0,1]
    r1 = r1 / 255
    v1 = v1 / 255
    b1 = b1 / 255

   ' recherche de la plus grande valeur parmi les composantes r,v,b
    maxi = max(r1,max(v1,b1))

    ' recherche de la plus petite valeur parmi les composantes r,v,b  
    mini = min(r1,min(v1,b1))

    ' calcul luminance l
    l = (maxi + mini) / 2

    ' calcul de l'écart entre la valeur mini et maxi
    ecart = maxi - mini

    ' si ecart est nul alors t et s sont nuls
    if ecart = 0
        t = 0
        s = 0
    else      
 ' calcul de la saturation s
 if l < 0.5 then s = ecart / (maxi + mini)
 if l >= 0.5 then s = ecart / (2 - maxi - mini )

        ' calcul de la teinte t
 if r1 = maxi then t = ( v1 - b1 ) / ecart
 if v1 = maxi then t = 2 + ((b1 - r1) / ecart)
 if b1 = maxi then t = 4 + ((r1 - v1) / ecart)
    end_if

    ' conversion de la teinte dans l'interval [0,1]
    t = t / 6
end_sub
' ------------------------------------------------------------------------------
sub TSL2RVB(t1,s1,l1)
    dim_local var1,var2

    If s1 = 0
        r% = int(l1*255)
        v% = int(l1*255)
        b% = int(l1*255)
    else
        if (l1 < 0.5)
            var2 = l1 * (1 + s1)
        else
            var2 = (l1 + s1) - (s1 * l1)
        end_if
        var1 = 2 * l1 - var2

        r% = 255 * teinteRVB(var1,var2,t1 + (1 / 3))
        v% = 255 * teinteRVB(var1,var2,t1 )
        b% = 255 * teinteRVB(var1,var2,t1 - (1 / 3))
   end_If
end_sub
' ------------------------------------------------------------------------------
fnc teinteRVB(v1,v2,vT)
   if vT < 0 then vT = vT + 1
   if vT > 1 then vT = vT - 1
   if  6 * vT < 1 then result (v1 + (v2 - v1) * 6 * vT) : exit_fnc
   if  2 * vT < 1 then result (v2 )  : exit_fnc
   if  3 * vT < 2 then result (v1 + (v2 - v1) * ((2 / 3) - vT) * 6)  : exit_fnc
   result v1
end_fnc
' ------------------------------------------------------------------------------
choixteinte:
    ' déterminer les valeurs RVB de la teinte cliquée
    r% = color_pixel_red(1,mouse_x_position(1),mouse_y_position(1))
    v% = color_pixel_green(1,mouse_x_position(1),mouse_y_position(1))
    b% = color_pixel_blue(1,mouse_x_position(1),mouse_y_position(1))

    creerDegrade()
return
' ------------------------------------------------------------------------------


Bonne journée à tous !
Revenir en haut Aller en bas
 
Quelques applications utilisant TSL et TSV
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Exécutables et Applications
» Chronomètre utilisant la variable NUMBER_TICK
» Regrouper les applications par genre (bureau Windows)
» Gérer un moteur 2D utilisant DirectX dans KGF ?
» Pour ceux qui font un jeu, utilisant des cartes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: