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.
Afficheur matriciel Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Afficheur matriciel Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Afficheur matriciel Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Afficheur matriciel Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Afficheur matriciel Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Afficheur matriciel Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Afficheur matriciel Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Afficheur matriciel Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Afficheur matriciel Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Afficheur matriciel Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Afficheur matriciel Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Afficheur matriciel Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Afficheur matriciel Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Afficheur matriciel Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Afficheur matriciel 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
Le Deal du moment :
Cartes Pokémon EV6.5 : où trouver le ...
Voir le deal

 

 Afficheur matriciel

Aller en bas 
+3
Minibug
jjn4
Marc
7 participants
AuteurMessage
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 12:09

Bonjour à tous !

Utile, pas utile … ? Je ne sais pas.

Quoi qu’il en soit, je vous partage cet afficheur matriciel défilant.

Code:
' Affichage matriciel defilant
' Marc - 19/10/2020
' http://panoramic.1fr1.net/

' matrice 6 x 7

dim afficheur%(200,7), texte$

label espace,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
label chiffre1, chiffre2, chiffre3, chiffre4, chiffre5, chiffre6, chiffre7, chiffre8, chiffre9, chiffre0
label signeApostrophe, signePourCent, signeEtoile, signePoint, signeVirgule
label signeDeuxPoints, signepointVirgule, signeMoins, signeExclamation, signeInterrogation, signeFraction, signePlus
label signeEgal, signeSuperieur, signeInferieur, signeCrochetOuvert, signeCrochetFerme, signeParentheseOuverte
label signeParentheseFermee, signeDiese, signeGuillemets

texte$ = "Bienvenue sur le forum Panoramic"

creerFenetrePrincipale()
creerAfficheur()
chargerTexte(texte$)
affichageTexte()

end



sub affichageTexte()

    dim_local i%, x%,y%

    for i% = 1000 to -800 step -10
        for x% = 1 to 200
            for y% = 1 to 7
                if afficheur%(x%,y%) = 1
                    2d_fill_color 250,0,0
                    2d_pen_color 250,0,0
                    2d_circle (x%*10)+i%,y%*10,4
                else
                    2d_fill_color 20,20,20
                    2d_pen_color 20,20,20
                    2d_circle (x%*10)+i%,y%*10,4
                end_if    
            next y%
        display
        next x%        
        pause 20
    next i%        

end_sub



sub chargerTexte(txt$)
    dim_local caractere$, index%, lectureData$, x%, y%, longueurTexte%, colonne%
    
    txt$=upper$(txt$)
    
    longueurTexte% = len(txt$)

    colonne% = 1

    for index% = 1 to longueurTexte%
        caractere$ = mid$(txt$,index%,1)

        positionnementIndexlectureData(caractere$)

        for x% = colonne% to colonne% + 5
            read lectureData$
            for y% = 1 to 7
                afficheur%(x%,y%) = mid$(lectureData$,y%,1)
            next y%          
        next x%      
        colonne% = colonne% + 6

    next index%
    
end_sub          



sub creerAfficheur()
    dim_local i%, j%
    2d_pen_color 20,20,20
    2d_fill_color 20,20,20

    for i% = 1 to 130
        for j% = 1 to 7
            2d_circle i%*10,j%*10,4
        next j%
    next i%        
          
end_sub



SUB creerFenetrePrincipale()
    width 0,1200
    height 0,750
    left 0,(screen_x - width(0))/2
    top 0,(screen_y - height(0))/2
    color 0,0,0,0
end_sub



sub positionnementIndexlectureData(caractere$)
    dim_local valeurAscii%
    
    valeurAscii% = ASC(caractere$)
    
    select valeurAscii%
        case 32
            restore_label espace
        case 65
            restore_label a
        case 66
            restore_label b
        case 67
            restore_label c
        case 68
            restore_label d
        case 69
            restore_label e
        case 70
            restore_label f
        case 71
            restore_label g
        case 72
            restore_label h
        case 73
            restore_label i
        case 74
            restore_label j
        case 75
            restore_label k
        case 76
            restore_label l
        case 77
            restore_label m
        case 78
            restore_label n
        case 79
            restore_label o
        case 80
            restore_label p
        case 81
            restore_label q
        case 82
            restore_label r
        case 83
            restore_label s
        case 84
            restore_label t
        case 85
            restore_label u
        case 86
            restore_label v
        case 87
            restore_label w
        case 88
            restore_label x
        case 89
            restore_label y
        case 90
            restore_label z
        case 49
            restore_label chiffre1
        case 50
            restore_label chiffre2
        case 51
            restore_label chiffre3
        case 52
            restore_label chiffre4
        case 53
            restore_label chiffre5
        case 54
            restore_label chiffre6
        case 55
            restore_label chiffre7
        case 56
            restore_label chiffre8
        case 57
            restore_label chiffre9
        case 48
            restore_label chiffre0
        case 39
            restore_label signeApostrophe
        case 37
            restore_label signePourCent
        case 42        
            restore_label signeEtoile
        case 46    
            restore_label signePoint
        case 44
            restore_label signeVirgule
        case 58
            restore_label signeDeuxPoints
        case 59
            restore_label signePointVirgule
        case 45
            restore_label signemoins
        case 33
            restore_label signeExclamation
        case 63
            restore_label signeInterrogation
        case 47
            restore_label signefraction
        case 43
            restore_label signePlus
        case 61
            restore_label signeEgal
        case 62
            restore_label signeSuperieur
        case 60
            restore_label signeInferieur
        case 91
            restore_label signeCrochetOuvert
        case 93
            restore_label signeCrochetFerme
        case 40
            restore_label signeParentheseOuverte
        case 41
            restore_label signeParentheseFermee
        case 35
            restore_label signeDiese
        case 34
            restore_label signeGuillemets
      end_select
end_sub


' caractere espace
espace:
data "0000000","0000000","0000000","0000000","0000000","0000000"

' caractere A
a:
data "0000000","0111111","1001000","1001000","1001000","0111111"

' caractere B
b:
data "0000000","1111111","1001001","1001001","1001001","0110110"

' caractere C
c:
data "0000000","0111110","1000001","1000001","1000001","0100010"

' caractere D
d:
data "0000000","1111111","1000001","1000001","1000001","0111110"

' caractere E
e:
data "0000000","1111111","1001001","1001001","1001001","1000001"

' caractere F
f:
data "0000000","1111111","1001000","1001000","1001000","1001000"

' caractere G
g:
data "0000000","0111110","1000001","1000001","1000101","0100110"

' caractere H
h:
data "0000000","1111111","0001000","0001000","0001000","1111111"

' caractere I
i:
data "0000000","1000001","1000001","1111111","1000001","1000001"

' caractere J
j:
data "0000000","0000010","0000001","0000001","0000001","1111110"

' caractere K
k:
data "0000000","1111111","0001000","0010100","0100010","1000001"

' caractere L
l:
data "0000000","1111111","0000001","0000001","0000001","0000001"

' caractere M
m:
data "0000000","1111111","0100000","0010000","0100000","1111111"

' caractere N
n:
data "0000000","1111111","0010000","0001000","0000100","1111111"

' caractere O
o:
data "0000000","0111110","1000001","1000001","1000001","0111110"

' caractere P
p:
data "0000000","1111111","1001000","1001000","1001000","0110000"

' caractere Q
Q:
data "0000000","0111110","1000001","1000101","1000011","0111111"

' caractere R
r:
data "0000000","1111111","1001000","1001100","1001010","0111001"

' caractere S
s:
data "0000000","0110010","1001001","1001001","1001001","0100110"

' caractere T
t:
data "0000000","1000000","1000000","1111111","1000000","1000000"

' caractere U
u:
data "0000000","1111110","0000001","0000001","0000001","1111110"

' caractere V
v:
data "0000000","1111100","0000010","0000001","0000010","1111100"

' caractere W
W:
data "0000000","1111110","0000001","0000110","0000001","1111110"

' caractere X
x:
data "0000000","1100011","0010100","0001000","0010100","1100011"

' caractere Y
y:
data "0000000","1100000","0010000","0001111","0010000","1100000"

' caractere Z
Z:
data "0000000","1000011","1000101","1001001","1010001","1100001"

' caractere 1
chiffre1:
data "0000000","0000001","0100001","1111111","0000001","0000001"

' caractere 2
chiffre2:
data "0000000","0100001","1000011","1000101","1001001","0110001"

' caractere 3
chiffre3:
data "0000000","0110010","1000001","1001001","1001001","0110110"

' caractere 4
chiffre4:
data "0000000","0001100","0010100","0100100","1000100","1111111"

' caractere 5
chiffre5:
data "0000000","0111001","1001001","1001001","1001001","1000110"

' caractere 6
chiffre6:
data "0000000","0111110","1001001","1001001","1001001","0000110"

' caractere 7
chiffre7:
data "0000000","1000001","1000010","1000100","1001000","0110000"

' caractere 8
chiffre8:
data "0000000","0111110","1001001","1001001","1001001","0111110"

' caractere 9
chiffre9:
data "0000000","01100000","1001001","1001001","1001001","0111110"

' caractere 0
chiffre0:
data "0000000","0111110","1000001","1000001","1000001","0111110"

' caractere apostrophe '
signeApostrophe:
data "0000000","0000000","0000000","1100000","0000000","0000000"

' caractere %
signePourCent:
data "0000000","0110010","0110100","0001000","0010110","0100110"

' caractere *
signeEtoile:
data "0000000","0000000","1010000","0100000","1010000","0000000"

' caratere .
signePoint:
data "0000000","0000000","0000000","0000010","0000000","0000000"

' caractere ,
signeVirgule:
data "0000000","0000000","0000001","0000010","0000000","0000000"

' caractere :
signeDeuxPoints:
data "0000000","0000000","0000000","0100010","0000000","0000000"

' caractere ;
signePointVirgule:
data "0000000","0000000","0000001","0100010","0000000","0000000"

' caractere -
signeMoins:
data "0000000","0000000","0001000","0001000","0001000","0000000"

' caractere !
signeExclamation:
data "0000000","0000000","0000000","1111101","0000000","0000000"

' caractere ?
signeInterrogation:
data "0000000","0100000","1000000","1001101","1001000","0110000"

' caractere /
signeFraction:
data "0000000","0000010","0000100","0001000","0010000","0100000"

' caratere +
signePlus:
data "0000000","0001000","0001000","0111110","0001000","0001000"

' caractere =
signeEgal:
data "0000000","0010100","0010100","0010100","0010100","0010100"

' caractere <
signeInferieur:
data "0000000","0000000","0001000","0010100","0100010","0000000"

' caractere >
signeSuperieur:
data "0000000","0000000","0100010","0010100","0001000","0000000"

' caractere [
signeCrochetOuvert:
data "0000000","0000000","1111111","1000001","1000001","0000000"

' caractere ]
signeCrochetFerme:
data "0000000","0000000","1000001","1000001","1111111","0000000"

' caractere(
signeParentheseOuverte:
data "0000000","0011100","0100010","1000001","1000001","0000000"

' caractere )
signeParentheseFermee:
data "0000000","0000000","1000001","1000001","0100010","0011100"

' caractere #
signeDiese:
data "0000000","0010100","1111111","0010100","1111111","0010100"

' caractere "
signeGuillemets:
data "0000000","0000000","1100000","0000000","1100000","0000000"
        


Bonne journée à tous et une pensée amicale à notre ami Jean-Claude.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2709
Date d'inscription : 13/09/2009

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 12:34

Bien, c'est très joli et ça peut faire l'objet d'une belle présentation !
Dommage que ce soit un peu saccadé
mais bon, je critique, là, tout de suite...
En fait, c'est une très belle réalisation, bravo !
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 17:19

Oui bonne idée Marc,

Ça pourrait être utilisé dans un jeu.
Peut être qu'en plus petit ça serait plus fluide aussi.
Il y a surement des idées à creuser...

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 19:29

L'inutile est parfois plus utile que l'utile, mais cessons de philosopher et restons dans l'utilité de l'inutile.

Voici ma contribution.

Code:

rem ============================================================================
rem                     Alphabet-Papydall
rem ============================================================================

dim x,y,e,r,g,b
width 0,1400
picture 10 : width 10, 1400 : height 10, 250
2d_target_is 10 : 2d_fill_off
picture 20 : width 20,1400 : height 20,160 : top 20,260
r = 200 : g = 100 : b = 20
' ------------------------------------------------------------------------------
y = 10 : e = 10
x = 100+0*8*e : A(x,y,e)
x = 100+1*8*e : B(x,y,e)
x = 100+2*8*e : C(x,y,e)
x = 100+3*8*e : D(x,y,e)
x = 100+4*8*e : E(x,y,e)
x = 100+5*8*e : F(x,y,e)
x = 100+6*8*e : G(x,y,e)
x = 100+7*8*e : H(x,y,e)
x = 100+8*8*e : I(x,y,e)
x = 100+9*8*e : J(x,y,e)
x = 100+10*8*e : K(x,y,e)
x = 100+11*8*e : L(x,y,e)
x = 100+12*8*e : M(x,y,e)

y = 20+1*10*e
x = 100+0*8*e : N(x,y,e)
x = 100+1*8*e : O(x,y,e)
x = 100+2*8*e : P(x,y,e)
x = 100+3*8*e : Q(x,y,e)
x = 100+4*8*e : R(x,y,e)
x = 100+5*8*e : S(x,y,e)
x = 100+6*8*e : T(x,y,e)
x = 100+7*8*e : U(x,y,e)
x = 100+8*8*e : V(x,y,e)
x = 100+9*8*e : W(x,y,e)
x = 100+10*8*e : X(x,y,e)
x = 100+11*8*e : Y(x,y,e)
x = 100+12*8*e : Z(x,y,e)
' ------------------------------------------------------------------------------
caption 0,"<ESC> pour sortir ..."
2d_target_is 20
repeat
    color 20,100,0,255
    hide 20 : pause 400
 
        y = 20 : e = 3
        x = 10 + 0*8*e : P(x,y,e)
        x = 10 + 1*8*e : A(x,y,e)
        x = 10 + 2*8*e : P(x,y,e)
        x = 10 + 3*8*e : Y(x,y,e)
        x = 10 + 4*8*e : D(x,y,e)
        x = 10 + 5*8*e : A(x,y,e)
        x = 10 + 6*8*e : L(x,y,e)
        x = 10 + 7*8*e : L(x,y,e)
        
        x = 10 + 9*8*e  : V(x,y,e)
        x = 10 + 10*8*e : O(x,y,e)
        x = 10 + 11*8*e : U(x,y,e)
        x = 10 + 12*8*e : S(x,y,e)

        x = 10 + 14*8*e : S(x,y,e)
        x = 10 + 15*8*e : O(x,y,e)
        x = 10 + 16*8*e : U(x,y,e)
        x = 10 + 17*8*e : H(x,y,e)
        x = 10 + 18*8*e : A(x,y,e)
        x = 10 + 19*8*e : I(x,y,e)
        x = 10 + 20*8*e : T(x,y,e)
        x = 10 + 21*8*e : E(x,y,e)
        
        x = 10 + 23*8*e : L(x,y,e)
        x = 10 + 24*8*e : A(x,y,e)
        
        x = 10 + 26*8*e : B(x,y,e)
        x = 10 + 27*8*e : I(x,y,e)
        x = 10 + 28*8*e : E(x,y,e)
        x = 10 + 29*8*e : N(x,y,e)
        x = 10 + 30*8*e : V(x,y,e)
        x = 10 + 31*8*e : E(x,y,e)
        x = 10 + 32*8*e : N(x,y,e)
        x = 10 + 33*8*e : U(x,y,e)
        x = 10 + 34*8*e : E(x,y,e)
        
        x = 10 + 36*8*e : A(x,y,e)
        x = 10 + 37*8*e : U(x,y,e)
        
        x = 10 + 39*8*e : F(x,y,e)
        x = 10 + 40*8*e : O(x,y,e)
        x = 10 + 41*8*e : R(x,y,e)
        x = 10 + 42*8*e : U(x,y,e)
        x = 10 + 43*8*e : M(x,y,e)
        
        x = 10 + 45*8*e : P(x,y,e)
        x = 10 + 46*8*e : A(x,y,e)
        x = 10 + 47*8*e : N(x,y,e)
        x = 10 + 48*8*e : O(x,y,e)
        x = 10 + 49*8*e : R(x,y,e)
        x = 10 + 50*8*e : A(x,y,e)
        x = 10 + 51*8*e : M(x,y,e)
        x = 10 + 52*8*e : I(x,y,e)
        x = 10 + 53*8*e : C(x,y,e)
' ------------------------------------------------------------------------------
        y = 100 : e = 5
        x = 400 + 0*8*e : E(x,y,e)
        x = 400 + 1*8*e : S(x,y,e)
        x = 400 + 2*8*e : C(x,y,e)
        
        x = 400 + 4*8*e : P(x,y,e)
        x = 400 + 5*8*e : O(x,y,e)
        x = 400 + 6*8*e : U(x,y,e)
        x = 400 + 7*8*e : R(x,y,e)
        
        x = 400 + 9*8*e : S(x,y,e)
        x = 400 + 10*8*e : O(x,y,e)
        x = 400 + 11*8*e : R(x,y,e)
        x = 400 + 12*8*e : T(x,y,e)
        x = 400 + 13*8*e : I(x,y,e)
        x = 400 + 14*8*e : R(x,y,e)
        
     show 20  : pause 1000
until scancode = 27
terminate
rem ============================================================================
SUB A(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y     : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+4*e,y+10*e
    2d_poly_to x+4*e,y+6*e : 2d_poly_to x+2*e,y+6*e  : 2d_poly_to x+2*e,y+10*e
    2d_poly_to x,y+10*e    : 2d_poly_to x,y
    2d_fill_off
    2d_rectangle x+2*e,y+2*e,x+4*e,y+4*e
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB B(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+5.5*e,y      : 2d_poly_to x+6*e,y+0.5*e : 2d_poly_to x+6*e,y+4*e
    2d_poly_to x+5*e,y+5*e    : 2d_poly_to x+6*e,y+6*e   : 2d_poly_to x+6*e,y+9.5*e
    2d_poly_to x+5.5*e,y+10*e : 2d_poly_to x,y+10*e      : 2d_poly_to x,y
    2d_fill_off : 2d_rectangle x+2*e,y+2*e,x+4*e,y+4*e   : 2d_rectangle x+2*e,y+6*e,x+4*e,y+8*e
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB C(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x+0.5*e,y
    2d_poly_to x,y+0.5*e     : 2d_poly_to x,y+9.5*e     : 2d_poly_to x+0.5*e,y+10*e
    2d_poly_to x+6*e,y+10*e  : 2d_poly_to x+6*e,y+8*e   : 2d_poly_to x+2.5*e,y+8*e
    2d_poly_to x+2*e,y+7.5*e : 2d_poly_to x+2*e,y+2.5*e : 2d_poly_to x+2.5*e,y+2*e
    2d_poly_to x+6*e,y+2*e   : 2d_poly_to x+6*e,y       : 2d_poly_to x+0.5*e,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB D(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e      : 2d_poly_to x+5.5*e,y+10*e : 2d_poly_to x+6*e,y+9.5*e
    2d_poly_to x+6*e,y+0.5*e : 2d_poly_to x+5.5*e,y      : 2d_poly_to x,y
    2d_poly_from x+2*e,y+2*e
    2d_poly_to x+2*e,y+8*e   : 2d_poly_to x+3.5*e,y+8*e  : 2d_poly_to x+4*e,y+7.5*e
    2d_poly_to x+4*e,y+2.5*e : 2d_poly_to x+3.5*e,y+2*e  : 2d_poly_to x+2*e,y+2*e
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB E(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e    : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+6*e,y+8*e
    2d_poly_to x+2*e,y+8*e : 2d_poly_to x+2*e,y+6*e  : 2d_poly_to x+4*e,y+6*e
    2d_poly_to x+4*e,y+4*e :  2d_poly_to x+2*e,y+4*e : 2d_poly_to x+2*e,y+2*e
    2d_poly_to x+6*e,y+2*e : 2d_poly_to x+6*e,y      : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB F(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e    : 2d_poly_to x+2*e,y+10*e : 2d_poly_to x+2*e,y+6*e
    2d_poly_to x+4*e,y+6*e : 2d_poly_to x+4*e,y+4*e  : 2d_poly_to x+2*e,y+4*e
    2d_poly_to x+2*e,y+2*e : 2d_poly_to x+6*e,y+2*e  : 2d_poly_to x+6*e,y
    2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b  
END_SUB
rem ============================================================================
SUB G(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e    : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+6*e,y+4*e
    2d_poly_to x+3*e,y+4*e : 2d_poly_to x+3*e,y+6*e  : 2d_poly_to x+4*e,y+6*e
    2d_poly_to x+4*e,y+8*e : 2d_poly_to x+2*e,y+8*e  : 2d_poly_to x+2*e,y+2*e
    2d_poly_to x+6*e,y+2*e : 2d_poly_to x+6*e,y      : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB H(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e : 2d_poly_to x+2*e,y+10*e : 2d_poly_to x+2*e,y+6*e
    2d_poly_to x+4*e,y+6*e : 2d_poly_to x+4*e,y+10*e : 2d_poly_to x+6*e,y+10*e
    2d_poly_to x+6*e,y : 2d_poly_to x+4*e,y : 2d_poly_to x+4*e,y+3*e
    2d_poly_to x+2*e,y+3*e : 2d_poly_to x+2*e,y : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b  
END_SUB
rem ============================================================================
SUB I(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+2*e     : 2d_poly_to x+2*e,y+2*e : 2d_poly_to x+2*e,y+8*e
    2d_poly_to x,y+8*e     : 2d_poly_to x,y+10*e    : 2d_poly_to x+6*e,y+10*e
    2d_poly_to x+6*e,y+8*e : 2d_poly_to x+4*e,y+8*e : 2d_poly_to x+4*e,y+2*e
    2d_poly_to x+6*e,y+2*e : 2d_poly_to x+6*e,y     : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB J(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y : 2d_poly_to x+6*e,y+9.75*e : 2d_poly_to x+5.75*e,y+10*e
    2d_poly_to x+0.75*e,y+10*e : 2d_poly_to x,y+9.75*e : 2d_poly_to x,y+8*e
    2d_poly_to x+2*e,y+8*e : 2d_poly_to x+2.25*e,y+9*e : 2d_poly_to x+3.75*e,y+9*e
    2d_poly_to x+4*e,y+8*e : 2d_poly_to x+4*e,y+2*e : 2d_poly_to x,y+2*e
    2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB K(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y      : 2d_poly_to x+2*e,y+3*e : 2d_poly_to x+4*e,y
    2d_poly_to x+6*e,y      : 2d_poly_to x+3*e,y+5*e : 2d_poly_to x+6*e,y+10*e
    2d_poly_to x+4*e,y+10*e : 2d_poly_to x+2*e,y+7*e : 2d_poly_to x+2*e,y+10*e
    2d_poly_to x,y+10*e     : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
    
END_SUB
rem ============================================================================
SUB L(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e    : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+6*e,y+8*e
    2d_poly_to x+2*e,y+8*e : 2d_poly_to x+2*e,y      : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB M(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e     : 2d_poly_to x+2*e,y+10*e : 2d_poly_to x+2*e,y+6*e
    2d_poly_to x+3*e,y+7*e  : 2d_poly_to x+4*e,y+6*e  : 2d_poly_to x+4*e,y+10*e
    2d_poly_to x+6*e,y+10*e : 2d_poly_to x+6*e,y      : 2d_poly_to x+4*e,y
    2d_poly_to x+3*e,y+2*e  : 2d_poly_to x+2*e,y      : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB N(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y : 2d_poly_to x+4*e,y+5*e : 2d_poly_to x+4*e,y
    2d_poly_to x+6*e,y : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+4*e,y+10*e
    2d_poly_to x+2*e,y+6*e : 2d_poly_to x+2*e,y+10*e : 2d_poly_to x,y+10*e
    2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB O(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_fill_off : 2d_rectangle x,y,x+6*e,y+10*e : 2d_rectangle x+2*e,y+2*e,x+4*e,y+8*e
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB P(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y      : 2d_poly_to x+6*e,y+6*e : 2d_poly_to x+2*e,y+6*e
    2d_poly_to x+2*e,y+10*e : 2d_poly_to x,y+10*e    : 2d_poly_to x,y
    2d_fill_off             : 2d_rectangle x+2*e,y+2*e,x+4*e,y+4*e
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB Q(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_fill_off : 2d_rectangle x,y,x+6*e,y+10*e : 2d_rectangle x+2*e,y+2*e,x+4*e,y+8*e    
    2d_poly_from x+2*e,y+8*e :  2d_poly_to x+3*e,y+9.5*e
    2d_poly_to x+5*e,y+9.5*e : 2d_poly_to x+4*e,y+8*e : 2d_poly_to x+2*e,y+8*e
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB R(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y      : 2d_poly_to x+6*e,y+6*e  : 2d_poly_to x+4*e,y+6*e
    2d_poly_to x+6*e,y+10*e : 2d_poly_to x+4*e,y+10*e : 2d_poly_to x+2*e,y+6*e
    2d_poly_to x+2*e,y+10*e : 2d_poly_to x,y+10*e     : 2d_poly_to x,y
    2d_fill_off : 2d_rectangle x+2*e,y+2*e,x+4*e,y+4*e
    2d_flood x+1*e,y+1*e,r,g,b    
END_SUB
rem ============================================================================
SUB S(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+6*e     : 2d_poly_to x+4*e,y+6*e : 2d_poly_to x+4*e,y+8*e
    2d_poly_to x,y+8*e     : 2d_poly_to x,y+10*e    : 2d_poly_to x+6*e,y+10*e
    2d_poly_to x+6*e,y+4*e : 2d_poly_to x+2*e,y+4*e : 2d_poly_to x+2*e,y+2*e
    2d_poly_to x+6*e,y+2*e : 2d_poly_to x+6*e,y     : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b      
END_SUB
rem ============================================================================
SUB T(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y      : 2d_poly_to x+6*e,y+2*e  : 2d_poly_to x+4*e,y+2*e
    2d_poly_to x+4*e,y+10*e : 2d_poly_to x+2*e,y+10*e : 2d_poly_to x+2*e,y+2*e
    2d_poly_to x,y+2*e : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB U(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x,y+10*e : 2d_poly_to x+6*e,y+10*e : 2d_poly_to x+6*e,y
    2d_poly_to x+4*e,y  : 2d_poly_to x+4*e,y+8*e  : 2d_poly_to x+2*e,y+8*e
    2d_poly_to x+2*e,y  : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB V(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y : 2d_poly_to x+3*e,y+5*e  : 2d_poly_to x+4*e,y
    2d_poly_to x+6*e,y : 2d_poly_to x+4*e,y+10*e : 2d_poly_to x+2*e,y+10*e
    2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB W(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y : 2d_poly_to x+2*e,y+5*e : 2d_poly_to x+3*e,y+4*e
    2d_poly_to x+4*e,y+5*e : 2d_poly_to x+4*e,y : 2d_poly_to x+6*e,y
    2d_poly_to x+6*e,y+10*e : 2d_poly_to x+4*e,y+10*e : 2d_poly_to x+3*e,y+8*e
    2d_poly_to x+2*e,y+10*e : 2d_poly_to x,y+10*e : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB X(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y : 2d_poly_to x+3*e,y+2*e : 2d_poly_to x+4*e,y
    2d_poly_to x+6*e,y : 2d_poly_to x+4*e,y+5*e : 2d_poly_to x+6*e,y+10*e
    2d_poly_to x+4*e,y+10*e : 2d_poly_to x+3*e,y+8*e : 2d_poly_to x+2*e,y+10*e
    2d_poly_to x,y+10*e : 2d_poly_to x+2*e,y+5*e : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB Y(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+2*e,y : 2d_poly_to x+3*e,y+2*e : 2d_poly_to x+4*e,y
    2d_poly_to x+6*e,y : 2d_poly_to x+4*e,y+4*e : 2d_poly_to x+4*e,y+10*e
    2d_poly_to x+2*e,y+10*e : 2d_poly_to x+2*e,y+4*e : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
SUB Z(x,y,e)
    if e < 1
       message "!!! La valeur de l'échelle e doit être POSITIVE !!!"
       exit_sub
    end_if
    2d_poly_from x,y
    2d_poly_to x+6*e,y : 2d_poly_to x+3*e,y+8*e : 2d_poly_to x+6*e,y+8*e
    2d_poly_to x+6*e,y+10*e : 2d_poly_to x,y+10*e : 2d_poly_to x+3*e,y+2*e
    2d_poly_to x,y+2*e : 2d_poly_to x,y
    2d_flood x+1*e,y+1*e,r,g,b
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 19:54

Bonsoir à tous !

Merci JJN4, Minibug et Papydall pour vos commentaires.

Merci Papydall pour ton source très sympa.

JJn4 a écrit:
Dommage que ce soit un peu saccadé

Oui, il y a trop de points à déplacer en même temps.
Comme dit Minibug, plus petit et avec moins de caractères c’est un peu plus fluide.

Par contre en affichage statique c’est sympa. Il y a un certain charme un peu rétro.

On peut ajouter des lignes, changer la taille, la couleur des leds et créer ses propres caractères ou symboles.

On peut aussi changer la matrice de base (6x9) pour une autre.

Pour ceux qui n’ont pas vu le rendu, voici une copie d’écran :

Afficheur matriciel Aff_bm10


Bonne soirée à tous !
Revenir en haut Aller en bas
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 20:35

inutilitaire intéressant, bravo marc.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyLun 19 Oct 2020 - 23:03

Hello Marc
Tonnerre Ton air ton R (voilà !) ne me plait pas beaucoup : il a de l’embonpoint un bon point en trop au ventre.

Je l’ai modifié comme suit ( ligne 309)
Code:

' caractere R
r:
data "0000000","1111111","1001000","1001100","1001010","0110001"


Et j’ai aussi remplacé les 2d_circle … par 2d_rectangle ….

Ça donne:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 0:18

Merci Mimic !

Merci Papydall ! Effectivement le R était en surcharge pondérale. Merci de ton œil expert.

Le 2d_rectangle est fort sympathique aussi. Voilà qui donne une touche de modernité.

L’histoire de ce source, est un code qui a pris naissance hier soir pour un projet. Ce matin, lors des essais, j’ai été fort déçu par le manque de fluidité lors du défilement. J’ai donc abandonné cette partie de code. Plutôt que de le mettre tout de suite au rancart, je me suis dit : je vais le poster dans la rubrique des inutilitaires. J’y ai ajouté quelques les signes de ponctuation et symboles avant de le publier. Peut-être pourra-t-il donner des idées ou être utile à un Panoramicien… ?
Bref, je suis content que ces quelques lignes de code aient suscité des réactions encourageantes de la communauté.

Merci à tous !
Revenir en haut Aller en bas
Oscaribout




Nombre de messages : 471
Date d'inscription : 29/12/2016

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 0:40

Bonsoir Marc

J'aurai aimé rentrer dans le code et le modifier, mais je suis trop pris par tout ce que j'ai à faire.

A mon avis, on doit pouvoir améliorer profondément le défilement. Il faut faire une copie de l'écran en laissant une marge à droite, et déplacer la fenêtre. Il suffit de rajouter les points à droite.

Tu pourrais également faire l'affichage en entier en débordant la largeur du picture pour l'ensemble du texte. Tu le fais à hide, car ça va beaucoup plus vite si on affiche rien.
Ensuite tu déplaceras à l'éclair ton texte, même faire des aller-retour.

Dommage, j'aurai aimer le faire, c'est intéressant, tant pis!
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 1:05

Pour info :
Il existe un accessoire de Windows qui permet de créer ses propres caractères et de les exploiter ensuite dans n'importe quel document.
Dans une invite de commande tapez eudcedit
Vous voyez apparaître une grille qui présente la liste des signes disponibles. Chaque case de la grille correspond à un caractère. Comme c'est la première fois que vous l'utilisez, la grille est vierge.

La suite est ici
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 10:48

Bonjour les Panoramiciens !

Merci Oscaribout !
Tu peux aussi utiliser des sprites. Leurs points forts sont la vélocité et la couleur de transparence.
J’avais fait, entres autres, une toute petite animation utilisant des sprites sous forme d’énigme mathématique. Point de temps à perdre, rien à calculer, juste observer la "mise en scène" :

https://panoramic.1fr1.net/t5764-enigme-mathematique

L’animation dure 30 secondes. C’est tout !


Merci de l’info, Papydall !

Bonne journée à tous !
(Très nuageuse pour la Touraine, Ensoleillée  sunny pour Moknine)
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2709
Date d'inscription : 13/09/2009

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 14:40

Oui, pour améliorer le défilement, il est possible de mettre cela
sur une scene2d avec des sprite, le tout situé à droite hors de
l'écran et de les faire défiler progressivement vers la gauche en
variant le LEFT jusqu'à les faire complètement disparaître à gauche.
jocolor
Personnellement, je préfère les petits ronds que les carrés,
ça fait plus rétro et joli !
geek
A Papydall :
J'ai lu la doc de eudcedit, c'est super de pouvoir créer ses propres
caractères, mais comme on ne peut pas les intégrer à un programme
publié sur le net et utilisable par quelqu'un d'autre, c'est beaucoup
moins bien. Dommage, je me souviens que sur l'Amstrad, on pouvait
créer ses propres caractères et les intégrer au programme, c'est
vraiment bête qu'on en puisse pas le faire avec les ordi modernes !
Sad
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Oscaribout




Nombre de messages : 471
Date d'inscription : 29/12/2016

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 16:05

Bonjour à tous

Marc a écrit:
J’ai donc abandonné cette partie de code. Plutôt que de le mettre tout de suite au rancart, je me suis dit : je vais le poster dans la rubrique des inutilitaires. J’y ai ajouté quelques les signes de ponctuation et symboles avant de le publier. Peut-être pourra-t-il donner des idées ou être utile à un Panoramicien… ?

C'est pour cette raison que je suis intervenu. Les sprites j'y avais pensé, mais bon. Je sais que tu es un très bon codeur, et ça me semblait bizarre que l'idée ne te soit pas venu. Je vois que ce n'est pas le cas. Moi aussi j'expérimente quelque fois, et je laisse de côté une idée qui ne va pas dans mon sens.

Bonne soirée
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 20:00

Magnifique Marc
j'ai moi même travaillé le sujet pour Fly simulator X
Afficheur matriciel 8047fcc2515ea6a46fffe121f5023610
mais sans l'interface de création de texte!
Revenir en haut Aller en bas
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMar 20 Oct 2020 - 22:19

Merci Mindstorm !

Ton affichage FS est extrêmement bien fait. Le formatage est parfait ! Il est très réaliste !

Bravo !
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyMer 21 Oct 2020 - 19:21

Mon idée a été de faire une police ou chaque point est 1 pixel (comme sur les vrais tableaux d'affichage ou tu as un actionneur par point).
Ainsi tu peux zoomer sans bavure et surtout en dézoomant tu bute sur le pixel.
Enfin des sprite parce que Fly simulateur ne sait rien faire d'autre et encore.....pas bien du tout

Afficheur matriciel Alphab10

pour finir je peux rajouter un cache si je veux donner l'effet point quand je suis zoomé.

Malheureusement je code extrêmement lentement et je n'ai pas eu le courage de le faire aussi en Panoramic
je partage donc ma police dans le webdav si cela peut aider un codeur expérimenté.
Revenir en haut Aller en bas
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyJeu 22 Oct 2020 - 0:43

@Mindstorm :
Merci pour ton partage. J’ai regardé ta police et nous avons les mêmes caractéristiques :
Chaque caractère est dessiné sur une matrice de 6 x 7 points.

Pour le fun, j’ai paramétré le code de l’afficheur pour avoir 1 point par pixel : c’est très petit, mais parfaitement lisible :

Afficheur matriciel Mindst10


Bonne continuation et bons vols avec FSX !
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyJeu 22 Oct 2020 - 20:47

Merci Marc je vais télécharger.
ou as tu mis cette version?

En fait, je ne vol pas ou très peut (juste pour faire des photos de mes créations), mais je m'en sers comme bac à sable (sand box).
Cela fait de bons exercices de programmation avec la récompense de pouvoir partager.
J'ai même réussi à convaincre deux personnes de nous rejoindre!
Bien sur, nous ne sommes pas entre Panoramicien et la notice en Anglais est très mal documenté voir obsolète ou même fausse.
Revenir en haut Aller en bas
Marc

Marc


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

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptyJeu 22 Oct 2020 - 21:23

Mimic a écrit:
ou as tu mis cette version?

La voici :
Code:
' Affichage matriciel
' Marc - 19/10/2020
' http://panoramic.1fr1.net/

' matrice 6 x 7

dim afficheur%(200,7), texte$

label espace,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
label chiffre1, chiffre2, chiffre3, chiffre4, chiffre5, chiffre6, chiffre7, chiffre8, chiffre9, chiffre0
label signeApostrophe, signePourCent, signeEtoile, signePoint, signeVirgule
label signeDeuxPoints, signepointVirgule, signeMoins, signeExclamation, signeInterrogation, signeFraction, signePlus
label signeEgal, signeSuperieur, signeInferieur, signeCrochetOuvert, signeCrochetFerme, signeParentheseOuverte
label signeParentheseFermee, signeDiese, signeGuillemets

texte$ = "Bienvenue sur le forum Panoramic"

creerFenetrePrincipale()
chargerTexte(texte$)
affichageTexte()

end

sub affichageTexte()

    dim_local i%, x%,y%

        for x% = 1 to 200
            for y% = 11 to 17
                if afficheur%(x%,y%-10) = 1
                    2d_fill_color 250,0,0
                    2d_pen_color 250,0,0
                    2d_point (x%)+i%,y%
                else
                    2d_fill_color 20,20,20
                    2d_pen_color 20,20,20
                    2d_point (x%)+i%,y%
                end_if    
            next y%
        display
        next x%        

end_sub


sub chargerTexte(txt$)
    dim_local caractere$, index%, lectureData$, x%, y%, longueurTexte%, colonne%
    
    txt$=upper$(txt$)
    
    longueurTexte% = len(txt$)

    colonne% = 1

    for index% = 1 to longueurTexte%
        caractere$ = mid$(txt$,index%,1)

        positionnementIndexlectureData(caractere$)

        for x% = colonne% to colonne% + 5
            read lectureData$
            for y% = 1 to 7
                afficheur%(x%,y%) = mid$(lectureData$,y%,1)
            next y%          
        next x%      
        colonne% = colonne% + 6

    next index%
    
end_sub          


SUB creerFenetrePrincipale()
    width 0,1200
    height 0,750
    left 0,(screen_x - width(0))/2
    top 0,(screen_y - height(0))/2
    color 0,0,0,0
end_sub



sub positionnementIndexlectureData(caractere$)
    dim_local valeurAscii%
    
    valeurAscii% = ASC(caractere$)
    
    select valeurAscii%
        case 32
            restore_label espace
        case 65
            restore_label a
        case 66
            restore_label b
        case 67
            restore_label c
        case 68
            restore_label d
        case 69
            restore_label e
        case 70
            restore_label f
        case 71
            restore_label g
        case 72
            restore_label h
        case 73
            restore_label i
        case 74
            restore_label j
        case 75
            restore_label k
        case 76
            restore_label l
        case 77
            restore_label m
        case 78
            restore_label n
        case 79
            restore_label o
        case 80
            restore_label p
        case 81
            restore_label q
        case 82
            restore_label r
        case 83
            restore_label s
        case 84
            restore_label t
        case 85
            restore_label u
        case 86
            restore_label v
        case 87
            restore_label w
        case 88
            restore_label x
        case 89
            restore_label y
        case 90
            restore_label z
        case 49
            restore_label chiffre1
        case 50
            restore_label chiffre2
        case 51
            restore_label chiffre3
        case 52
            restore_label chiffre4
        case 53
            restore_label chiffre5
        case 54
            restore_label chiffre6
        case 55
            restore_label chiffre7
        case 56
            restore_label chiffre8
        case 57
            restore_label chiffre9
        case 48
            restore_label chiffre0
        case 39
            restore_label signeApostrophe
        case 37
            restore_label signePourCent
        case 42        
            restore_label signeEtoile
        case 46    
            restore_label signePoint
        case 44
            restore_label signeVirgule
        case 58
            restore_label signeDeuxPoints
        case 59
            restore_label signePointVirgule
        case 45
            restore_label signemoins
        case 33
            restore_label signeExclamation
        case 63
            restore_label signeInterrogation
        case 47
            restore_label signefraction
        case 43
            restore_label signePlus
        case 61
            restore_label signeEgal
        case 62
            restore_label signeSuperieur
        case 60
            restore_label signeInferieur
        case 91
            restore_label signeCrochetOuvert
        case 93
            restore_label signeCrochetFerme
        case 40
            restore_label signeParentheseOuverte
        case 41
            restore_label signeParentheseFermee
        case 35
            restore_label signeDiese
        case 34
            restore_label signeGuillemets
      end_select
end_sub


' caractere espace
espace:
data "0000000","0000000","0000000","0000000","0000000","0000000"

' caractere A
a:
data "0000000","0111111","1001000","1001000","1001000","0111111"

' caractere B
b:
data "0000000","1111111","1001001","1001001","1001001","0110110"

' caractere C
c:
data "0000000","0111110","1000001","1000001","1000001","0100010"

' caractere D
d:
data "0000000","1111111","1000001","1000001","1000001","0111110"

' caractere E
e:
data "0000000","1111111","1001001","1001001","1001001","1000001"

' caractere F
f:
data "0000000","1111111","1001000","1001000","1001000","1001000"

' caractere G
g:
data "0000000","0111110","1000001","1000001","1000101","0100110"

' caractere H
h:
data "0000000","1111111","0001000","0001000","0001000","1111111"

' caractere I
i:
data "0000000","1000001","1000001","1111111","1000001","1000001"

' caractere J
j:
data "0000000","0000010","0000001","0000001","0000001","1111110"

' caractere K
k:
data "0000000","1111111","0001000","0010100","0100010","1000001"

' caractere L
l:
data "0000000","1111111","0000001","0000001","0000001","0000001"

' caractere M
m:
data "0000000","1111111","0100000","0010000","0100000","1111111"

' caractere N
n:
data "0000000","1111111","0010000","0001000","0000100","1111111"

' caractere O
o:
data "0000000","0111110","1000001","1000001","1000001","0111110"

' caractere P
p:
data "0000000","1111111","1001000","1001000","1001000","0110000"

' caractere Q
Q:
data "0000000","0111110","1000001","1000101","1000011","0111111"

' caractere R
r:
data "0000000","1111111","1001000","1001100","1001010","0111001"

' caractere S
s:
data "0000000","0110010","1001001","1001001","1001001","0100110"

' caractere T
t:
data "0000000","1000000","1000000","1111111","1000000","1000000"

' caractere U
u:
data "0000000","1111110","0000001","0000001","0000001","1111110"

' caractere V
v:
data "0000000","1111100","0000010","0000001","0000010","1111100"

' caractere W
W:
data "0000000","1111110","0000001","0000110","0000001","1111110"

' caractere X
x:
data "0000000","1100011","0010100","0001000","0010100","1100011"

' caractere Y
y:
data "0000000","1100000","0010000","0001111","0010000","1100000"

' caractere Z
Z:
data "0000000","1000011","1000101","1001001","1010001","1100001"

' caractere 1
chiffre1:
data "0000000","0000001","0100001","1111111","0000001","0000001"

' caractere 2
chiffre2:
data "0000000","0100001","1000011","1000101","1001001","0110001"

' caractere 3
chiffre3:
data "0000000","0110010","1000001","1001001","1001001","0110110"

' caractere 4
chiffre4:
data "0000000","0001100","0010100","0100100","1000100","1111111"

' caractere 5
chiffre5:
data "0000000","0111001","1001001","1001001","1001001","1000110"

' caractere 6
chiffre6:
data "0000000","0111110","1001001","1001001","1001001","0000110"

' caractere 7
chiffre7:
data "0000000","1000001","1000010","1000100","1001000","0110000"

' caractere 8
chiffre8:
data "0000000","0111110","1001001","1001001","1001001","0111110"

' caractere 9
chiffre9:
data "0000000","01100000","1001001","1001001","1001001","0111110"

' caractere 0
chiffre0:
data "0000000","0111110","1000001","1000001","1000001","0111110"

' caractere apostrophe '
signeApostrophe:
data "0000000","0000000","0000000","1100000","0000000","0000000"

' caractere %
signePourCent:
data "0000000","0110010","0110100","0001000","0010110","0100110"

' caractere *
signeEtoile:
data "0000000","0000000","1010000","0100000","1010000","0000000"

' caratere .
signePoint:
data "0000000","0000000","0000000","0000010","0000000","0000000"

' caractere ,
signeVirgule:
data "0000000","0000000","0000001","0000010","0000000","0000000"

' caractere :
signeDeuxPoints:
data "0000000","0000000","0000000","0100010","0000000","0000000"

' caractere ;
signePointVirgule:
data "0000000","0000000","0000001","0100010","0000000","0000000"

' caractere -
signeMoins:
data "0000000","0000000","0001000","0001000","0001000","0000000"

' caractere !
signeExclamation:
data "0000000","0000000","0000000","1111101","0000000","0000000"

' caractere ?
signeInterrogation:
data "0000000","0100000","1000000","1001101","1001000","0110000"

' caractere /
signeFraction:
data "0000000","0000010","0000100","0001000","0010000","0100000"

' caratere +
signePlus:
data "0000000","0001000","0001000","0111110","0001000","0001000"

' caractere =
signeEgal:
data "0000000","0010100","0010100","0010100","0010100","0010100"

' caractere <
signeInferieur:
data "0000000","0000000","0001000","0010100","0100010","0000000"

' caractere >
signeSuperieur:
data "0000000","0000000","0100010","0010100","0001000","0000000"

' caractere [
signeCrochetOuvert:
data "0000000","0000000","1111111","1000001","1000001","0000000"

' caractere ]
signeCrochetFerme:
data "0000000","0000000","1000001","1000001","1111111","0000000"

' caractere(
signeParentheseOuverte:
data "0000000","0011100","0100010","1000001","1000001","0000000"

' caractere )
signeParentheseFermee:
data "0000000","0000000","1000001","1000001","0100010","0011100"

' caractere #
signeDiese:
data "0000000","0010100","1111111","0010100","1111111","0010100"

' caractere "
signeGuillemets:
data "0000000","0000000","1100000","0000000","1100000","0000000"
        

N'hésite pas à demander si tu souhaites l'ajout ou la modification de caractères.

Bonne programmation !
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel EmptySam 24 Oct 2020 - 21:24

Merci Marc
je ne code pas vite mais je vais décortiquer ton code pour progresser.
Si vraiment j'ai un soucis je ferai appel à toi.
Merci encore
Revenir en haut Aller en bas
Contenu sponsorisé





Afficheur matriciel Empty
MessageSujet: Re: Afficheur matriciel   Afficheur matriciel Empty

Revenir en haut Aller en bas
 
Afficheur matriciel
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» OPTIQUE GEOMETRIQUE MATRICIEL et Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: