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
» Logiciel de planétarium.
Compilateur FBPano - Page 7 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Compilateur FBPano - Page 7 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Compilateur FBPano - Page 7 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Compilateur FBPano - Page 7 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Compilateur FBPano - Page 7 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Compilateur FBPano - Page 7 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Compilateur FBPano - Page 7 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Compilateur FBPano - Page 7 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Compilateur FBPano - Page 7 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Compilateur FBPano - Page 7 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Compilateur FBPano - Page 7 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Compilateur FBPano - Page 7 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Compilateur FBPano - Page 7 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Compilateur FBPano - Page 7 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Compilateur FBPano - Page 7 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Compilateur FBPano

Aller en bas 
+11
Pedro
Ouf_ca_passe
RMont
Yannick
Klaus
papydall
pascal10000
Minibug
Jicehel
jpcr
jean_debord
15 participants
Aller à la page : Précédent  1, 2, 3 ... 6, 7, 8, 9, 10, 11  Suivant
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyMar 29 Nov 2016 - 9:14

Merci papydall Smile

J'ai réusi à faire passer ton texte dans Geany en choisissant la police "Times New Roman" mais quand je lance le programme les caractères ne sont plus les mêmes !

Compilateur FBPano - Page 7 Unicod13

Il faut sans doute changer aussi la police de caractères dans FLTK, mais je ne sais pas trop comment !

Comme je le disais, il reste encore beaucoup à faire Smile
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyMar 29 Nov 2016 - 14:43

Je vois le problème :
En arabe, l’écriture se fait de droite à gauche, contrairement aux autres langues (de gauche à droite).
Aussi les lettres d’un même mot sont liées ensemble, comme on écrit à la main en Français et non comme ce texte est écrit (les lettres d’un même mot sont séparées).

Le texte qui se lit de droite à gauche est :

Citation :



نص حكيم له سر قاطع وذو شأن عظيم مكتوب على ثوب أخضر ومغلف بجلد أزرق  




Devient, en séparant les lettres :


Citation :



ن ص ح ك ي م  ل ه  س ر  ق ا ط ع  و ذ و   ش أ ن  ع ظ ي م  م ك ت و ب  ع ل ى  ث و ب  أ خ ض ر  و م غ  ف   ب ج ل د  أ ز ر ق  




L’image que tu as postée montre que le texte est repris caractère par caractère mais de gauche à droite, ce qui fait que les lettres deviennent séparées et le texte n’a plus aucun sens.

Embarassed Je ne suis pas sûr que je me suis bien exprimé ! Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyJeu 1 Déc 2016 - 10:14

Je pense que c'est un bug de Geany. Je vais rechercher...

Je crois que le support de l'Unicode dans FBpano risque d'être très partiel, tout au moins dans un premier temps...

J'ai d'autres projets en cours, notamment d'adapter FBPano au Raspberry Pi.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyJeu 1 Déc 2016 - 12:46

Il n'y a pas d'urgence.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptySam 3 Déc 2016 - 18:53

J'ai réussi à mettre la phrase arabe dans la liste. Remarquez que cet exemple est sous Windows 8.1, alors que le précédent était sous Windows XP.

Compilateur FBPano - Page 7 Unicod14

La phrase arabe n'est cependant pas bien centrée, contrairement aux autres. Je ne comprends pas pourquoi !
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyMer 7 Déc 2016 - 9:52

Un autre exemple avec l'Esperanto, cette fois en faisant varier la taille, la couleur et l'orientation du texte :

Compilateur FBPano - Page 7 Unicod15
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyVen 9 Déc 2016 - 9:23

Pour aider notre ami Ouf_ça_passe, qui souffre de ne pas pouvoir utiliser les opérateurs de comparaison avec les chaînes de caractères, voici une petite DLL écrite en FBPano :

Code:

function strcmp% (a$, b$)
  if a = b then
    strcmp = 0
  elseif a > b then
    strcmp = 1
  else
    strcmp = -1
  end_if
end_function

- Sauvegarder sous strcmp.bas

- Compiler par : fbpano strcmp.bas -dllpano

- On obtient le fichier : strcmp.dll

Et voici un exemple d'appel depuis PANORAMIC :

Code:

dll_on "strcmp.dll"

dim a$, b$, result%

a$ = "abcd"
b$ = "dcba"

result% = dll_call2("strcmp", adr(a$), adr(b$))

print result%
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Compilateur FBPano - Page 7 Empty
MessageSujet: re   Compilateur FBPano - Page 7 EmptyVen 9 Déc 2016 - 12:52

Voilà un bon exemple d' utilisation de FBPANO.
Le zip que j' ai actuellement en téléchargement sur le site "Le Mag" commence à dater.
J' ai cru lire que tu avais mis FBPANO sous Install, bonne idée dès qu' il y a des fichiers qui se promènent un peu de partout,
et surtout si tu joins un "Uninstall".

As tu la dernière version "zippée" (le site ne supporte pas les *.exe pour les téléchargements) ?
Revenir en haut Aller en bas
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyVen 9 Déc 2016 - 17:13

Merci pour cette DLL, Jean.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptySam 10 Déc 2016 - 9:50

J'ai mis la DLL compilée sur mon WebDav (Dossier FBPano)

Dans ce dossier figurent aussi :

- le fichier ZIP pour l'installation manuelle (Windows / Linux)

- le fichier install... pour l'installation automatique sous Windows

- le fichier update... pour la mise à jour automatique à partir de la version précédente sous Windows

Si vous travaillez sous Windows, je recommande l'installation automatique.

L'installation manuelle suppose que vous avez déjà installé FreeBASIC et les 2 bibliothèques FLTK et FBImage.

L'installateur automatique installe tout ce qu'il faut, y compris une version allégée de FreeBASIC (32 bits) ainsi qu'un programme de désinstallation.

Il n'est pas nécessaire de désinstaller une ancienne version pour en installer une nouvelle.



-
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Compilateur FBPano - Page 7 Empty
MessageSujet: re   Compilateur FBPano - Page 7 EmptySam 10 Déc 2016 - 12:40

Merci Jean pour cette réponse.
J' ai téléchargé les principaux et je vais voir à les mettre sur le site.
Wink
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Compilateur FBPano - Page 7 Empty
MessageSujet: Encore merci   Compilateur FBPano - Page 7 EmptyVen 16 Déc 2016 - 15:16

Merci Jean

pour ton aide et tes développements.

Cordialement
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptySam 17 Déc 2016 - 18:52

Voici un exemple en PANORAMIC pour trier un tableau de chaînes de caractères avec la DLL précédente. C'est beaucoup plus simple que de comparer octet par octet.

Code:

dll_on "strcmp.dll"

dim n%, i%

n% = 5

dim a$(n%)

a$(1) = "un"
a$(2) = "deux"
a$(3) = "trois"
a$(4) = "quatre"
a$(5) = "cinq"

tri()

for i% = 1 to n%
  print a$(i%)
next i%

end

sub tri()
' Tri par insertion

  dim_local i%, j%, k%, a1$, a2$, tmp$

  for i% = 1 to n% - 1
    k% = i%
    a1$ = a$(i%)
    for j% = i% + 1 to n%
      a2$ = a$(j%)
      ' Tester si a2$ < a1$
      if dll_call2("strcmp", adr(a2$), adr(a1$))= -1
        k% = j%
        a1$ = a$(j%)
      end_if
    next j%

    ' Echanger a$(i%) et a$(k%)
    tmp$ = a$(i%)
    a$(i%) = a$(k%)
    a$(k%) = tmp$
  next i%
end_sub
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Compilateur FBPano - Page 7 Empty
MessageSujet: Re   Compilateur FBPano - Page 7 EmptySam 17 Déc 2016 - 19:01

La, je suis sur tablette mais je teste des que je récupère mon ordi.
Sad mon gamer a pris le pouvoir sur ma machine...
Laughing
Revenir en haut Aller en bas
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyDim 18 Déc 2016 - 15:13

Testé et c'est correct.
Merci jean_debord
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyMer 21 Déc 2016 - 17:48

Voici un autre exemple avec un tableau à 2 dimensions, les colonnes servant de clé de tri.

On passe la clé en paramètre au sous-programme "tri".

Code:

dll_on "strcmp.dll"

dim nlig%, ncol%

nlig% = 5
ncol% = 2

dim a$(nlig%, ncol%)

data "un", "one"
data "deux", "two"
data "trois", "three"
data "quatre", "four"
data "cinq", "five"

read_data()

tri(1)
print_tab(1)

tri(2)
print_tab(2)

end

sub read_data()
  dim_local i%, j%
  for i% = 1 to nlig%
    for j% = 1 to ncol%
      read a$(i%, j%)
    next j%
  next i%
end_sub

sub print_tab(cle%)
  dim_local i%, j%, tmp$
  print
  print "Tri sur la colonne ", cle%, " :"
  print
  for i% = 1 to nlig%
    tmp$ = ""
    for j% = 1 to ncol%
      tmp$ = tmp$ + a$(i%, j%) + "     "
    next j%
    print tmp$
  next i%
end_sub

sub swap_lines(i%, k%)
  dim_local j%, tmp$
  for j% = 1 to ncol%
    tmp$ = a$(i%, j%)
    a$(i%, j%) = a$(k%, j%)
    a$(k%, j%) = tmp$
  next j%
end_sub

sub tri(cle%)
' Tri par insertion

  dim_local i%, j%, k%, a1$, a2$

  for i% = 1 to nlig% - 1
    k% = i%
    a1$ = a$(i%, cle%)
    for j% = i% + 1 to nlig%
      a2$ = a$(j%, cle%)
      ' Tester si a2$ < a1$
      if dll_call2("strcmp", adr(a2$), adr(a1$))= -1
        k% = j%
        a1$ = a$(j%, cle%)
      end_if
    next j%
    ' Echanger les lignes i% et k%
    swap_lines(i%, k%)
  next i%
end_sub
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyDim 1 Jan 2017 - 15:58

Extrait du forum FreeBASIC puis adapté en FBPano, ce programme vous dessine une table des codes ASCII avec plein de belles couleurs...

Code:

' *****************************************************************
' An ascii chart for low and high ascii chars
' Richard D. Clark
' Freeware
' -----------------------------------------------------------------
' Adaptation pour FBPano par J. Debord
' *****************************************************************

const fbWhite = RGB (255, 255, 255)
const fbYellow = RGB (255, 255, 000)
const fbGrey = RGB (192, 192, 192)
const fbGreen = RGB (000, 255, 000)
const fbEmeraldGreen = RGB (000, 201, 087)
const fbGreenPale = RGB (152, 251, 152)
const fbYellowGreen = RGB (154, 205, 050)
const fbOrange = RGB (255, 128, 000)
const fbSalmon = RGB (250, 128, 114)
const fbCarrot = RGB (237, 145, 033)
const fbMarsYellow = RGB (227, 112, 026)
const fbGold = RGB (255, 215, 000)
const fbMelon = RGB (227, 168, 105)

dim keycode%

fb_form 700, 500, "Table des codes ASCII"

PrintAscii

repeat
  keycode = fb_event_key
  select keycode
    case 65, 97 : PrintAscii  ' A, a
    case 66, 98 : DrawBox     ' B, b
  end_select
until keycode = 27            ' Esc

end

sub display(txt$, row%, col%, colour%)
  fb_pen_color colour
  fb_print txt, col * 10, row * 16
end_sub

sub PrintAscii
    dim i%, ccol%, col%, row%, colour%, cout$

    fb_cls
    col = 1
    row = 1

    display "Codes ASCII 0-127", row, col, fbOrange

    for i = 0 to 127
        row = row + 1
        ccol = col
        cout = trim(str(i))
        if len(cout) < 3 then
            cout = string(3 - len(cout), "0") + cout
        end_if
        display cout, row, ccol, fbWhite
        ccol = ccol + 3
        display ":", row, ccol, fbGrey
        ccol = ccol + 1
        select i
          case  3 to   6 : colour = fbYellowGreen
          case 48 to  57 : colour = fbGreenPale
          case 65 to  90 : colour = fbGreen
          case 97 to 122 : colour = fbEmeraldGreen
          case else      : colour = fbYellow
        end_select
        if i <> 7 then
            display chr(i), row, ccol, colour
        end_if
        ccol = ccol + 1
        display " ", row, ccol, colour
        if row = 14 then
            row = 1
            col = ccol + 2
        end_if
    next i
    row = 15
    col = 1
    display "Codes ASCII 128-255", row, col, fbOrange
    for i = 128 to 255
        row = row + 1
        ccol = col
        cout = trim(str(i))
        if len(cout) < 3 then
            cout = string(3 - len(cout), "0") + cout
        end_if
        display cout, row, ccol, fbWhite
        ccol = ccol + 3
        display ":", row, ccol, fbGrey
        ccol = ccol + 1
        select i
          case 176 to 178                                  : colour = fbGold
          case 185 to 188, 200 to 206                      : colour = fbCarrot
          case 219 to 223                                  : colour = fbSalmon
          case 179, 180, 191 to 197, 217, 218              : colour = fbMarsYellow
          case 181, 184, 190, 198, 207, 209, 212, 213, 216 : colour = fbMelon
          case else                                        : colour = fbYellow
        end_select
        display chr(i), row, ccol, colour
        ccol = ccol + 1
        display " ", row, ccol, colour
        if row = 28 then
            row = 15
            col = ccol + 2
        end_if
    next i
    display "Pressez B pour les dessins de boites, ESC pour quitter.", 30, 1, fbWhite
end_sub

sub DrawBox
    fb_cls

    display "Lignes doubles :", 1, 1, fbOrange

    display chr(201, 205, 205, 203, 205, 205, 187), 2, 1, fbYellow
    display chr(186,  32,  32, 186,  32,  32, 186), 3, 1, fbYellow
    display chr(204, 205, 205, 206, 205, 205, 185), 4, 1, fbYellow
    display chr(186,  32,  32, 186,  32,  32, 186), 5, 1, fbYellow
    display chr(200, 205, 205, 202, 205, 205, 188), 6, 1, fbYellow

    display "201 205 205 203 205 205 187", 2, 10, fbWhite
    display "186         186         186", 3, 10, fbWhite
    display "204 205 205 206 205 205 185", 4, 10, fbWhite
    display "186         186         186", 5, 10, fbWhite
    display "200 205 205 202 205 205 188", 6, 10, fbWhite

    display "Lignes simples :", 8, 1, fbOrange

    display chr(218, 196, 196, 194, 196, 196, 191),  9, 1, fbYellow
    display chr(179,  32,  32, 179,  32,  32, 179), 10, 1, fbYellow
    display chr(195, 196, 196, 197, 196, 196, 180), 11, 1, fbYellow
    display chr(179,  32,  32, 179,  32,  32, 179), 12, 1, fbYellow
    display chr(192, 196, 196, 193, 196, 196, 217), 13, 1, fbYellow

    display "218 196 196 194 196 196 191",  9, 10, fbWhite
    display "179         179         179", 10, 10, fbWhite
    display "195 196 196 197 196 196 180", 11, 10, fbWhite
    display "179         179         179", 12, 10, fbWhite
    display "192 196 196 193 196 196 217", 13, 10, fbWhite

    display "Lignes doubles/simples :", 15, 1, fbOrange

    display chr(213, 205, 205, 209, 205, 205, 184), 16, 1, fbYellow
    display chr(179,  32,  32, 179,  32,  32, 179), 17, 1, fbYellow
    display chr(198, 205, 205, 216, 205, 205, 181), 18, 1, fbYellow
    display chr(179,  32,  32, 179,  32,  32, 179), 19, 1, fbYellow
    display chr(212, 205, 205, 207, 205, 205, 190), 20, 1, fbYellow

    display "213 205 205 209 205 205 184", 16, 10, fbWhite
    display "179         179         179", 17, 10, fbWhite
    display "198 205 205 216 205 205 181", 18, 10, fbWhite
    display "179         179         179", 19, 10, fbWhite
    display "212 205 205 207 205 205 190", 20, 10, fbWhite

    display "Lignes simples/doubles :", 22, 1, fbOrange

    display chr(214, 196, 196, 210, 196, 196, 183), 23, 1, fbYellow
    display chr(186,  32,  32, 186,  32,  32, 186), 24, 1, fbYellow
    display chr(199, 196, 196, 215, 196, 196, 182), 25, 1, fbYellow
    display chr(186,  32,  32, 186,  32,  32, 186), 26, 1, fbYellow
    display chr(211, 196, 196, 208, 196, 196, 189), 27, 1, fbYellow

    display "214 196 196 210 196 196 183", 23, 10, fbWhite
    display "186         186         186", 24, 10, fbWhite
    display "199 196 196 215 196 196 182", 25, 10, fbWhite
    display "186         186         186", 26, 10, fbWhite
    display "211 196 196 208 196 196 189", 27, 10, fbWhite

    display "Pressez A pour la table ASCII, Esc pour quitter", 30, 1, fbWhite
end_sub


Compilateur FBPano - Page 7 Ascii110


Compilateur FBPano - Page 7 Ascii210

Avec mes meilleurs voeux pour 2017 !

PS. L'auteur original a un très beau site ici : http://users.freebasic-portal.de/rdc/index.html
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyMer 4 Jan 2017 - 9:07

Un autre programme, de la même origine.

Il faut le voir en action bien sûr !

Code:

' *****************************************************************
' Ondulations
' D'apres Lothar Schirm sur le forum FreeBASIC
' -----------------------------------------------------------------
' Chaque particule (bleu clair) tourne sur un cercle (bleu foncé)
' Le décalage des cercles crée l'illusion d'une onde qui se déplace
' *****************************************************************

dim y0 = 50
dim r = 30, r1 = 3
dim t = 0, dt = 0.03

fb_form 1000, 100, "Ondulations"

fb_animate adr(draw_frame), adr(event_keyboard)

sub draw_frame(done%)

  dim k%, x0, phi, t1, x, y
  
  t = t + dt
  
  fb_cls
  
  for k = 0 to 40
    x0 = 25 * k
    fb_pen_color &hAAAAFF
    fb_arc x0, y0, r
    phi = 0.5 * k
    t1 = t - phi
    x = x0 + r * sin(t1)
    y = y0 - r * cos(t1)
    fb_pen_color &h00FFFF
    fb_pie x, y, r1
  next k
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end_sub

Compilateur FBPano - Page 7 Ex50a10
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Compilateur FBPano - Page 7 Empty
MessageSujet: Ondulations   Compilateur FBPano - Page 7 EmptyJeu 5 Jan 2017 - 8:08

Testé et validé sans aucun problème.

Bonne journée à tou(te)s
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyJeu 19 Jan 2017 - 8:56

Nouvelle version 0.18
---------------------

- Compatibilité Raspberry Pi : la framboise a désormais son propre langage "Panoramic-like" !

- Support (partiel) de l'Unicode

- Programmes exemples ajoutés :

* Table ASCII (exemples\console\ascii.bas)
* Ondulations (exemples\FLTK\ex50a.bas)
* Unicode (exemples\FLTK\ex65.bas à ex67.bas)

- Programmes exemples modifiés :

* Certaines DLLs associées à des programmes particuliers (Grands entiers, Calculatrice, Fractales) ont été transformées en bibliothèques statiques et sont désormais accessibles par tous les programmes
* Dessin de fractales (exemples\fractal) : l'image en cours de calcul est affichée dans une fenêtre particulière ; la touche ESC interromp le calcul ; les images peuvent être sauvegardées en PNG ou BMP
* Jeu de la vie (exemples\vie) : les paramètres sont désormais affichés sur la fenêtre graphique plutôt que sur une fenêtre "ligne de commande"

- Mise à jour de la documentation sur la prise en main de FBPano

- Les fichiers et répertoires ont été réorganisés. Pour cette raison je conseille (pour cette fois...) de désinstaller la version précédente et de réinstaller cette version à partir du fichier setup_018.exe disponible sur mon WebDav (dossier FBPano)

Quelques conseils pour l'installation :

1. Pour éviter les problèmes de droits d'accès, n'installez pas dans `Program files` ; le répertoire par défaut `C:\FBPano` devrait convenir à la plupart des utilisateurs.

2. N'installez qu'une seule version à la fois. Chaque version contenant sa propre copie de FreeBASIC, il n'y a aucun intérêt à multiplier les installations.

3. Le fichier `FBPano.zip`, également disponible sur le WebDav, est réservé à l'installation manuelle ; il ne faut donc pas l'utiliser en même temps que (ou à la place de...) l'installateur automatique setup...exe

4. Lisez la documentation, même si elle est encore incomplète ! Pour l'afficher, ouvrez le fichier FBPano.htm qui se trouve dans le répertoire d'installation.


Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Compilateur FBPano - Page 7 Empty
MessageSujet: TROP FORT   Compilateur FBPano - Page 7 EmptyJeu 19 Jan 2017 - 9:16

Merci Jean

et bonne journée.
Revenir en haut Aller en bas
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyJeu 19 Jan 2017 - 13:09

Merci jean_debord.
C'est du beau travail. king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyVen 20 Jan 2017 - 11:06

Merci à vous deux Smile

Voici une adaptation pour FBPano du programme de papydall sur la fourmi de Langton (https://panoramic.1fr1.net/t4950-la-fourmi-de-langton?highlight=fourmi+de+Langton)

Vous pouvez modifier la couleur des cases (blanches ou bleues) avec un clic gauche ou déplacer la fourmi (point rouge) avec un clic droit.

La fourmi saura-t-elle reconstruire une route après une telle perturbation ? A vous de voir ...

Code:

' ********************************************************************
' Fourmi de Langton
' ********************************************************************
' Ce programme travaille sur des grilles de grande taille dont on
' n'affiche qu'une partie, avec possibilite de zoom et de defilement.
'
' Le programme demarre en mode "Creation". Les commandes suivantes
' sont actives :
'
'   Clic gauche : colore une case en blanc ou bleu
'   Clic droit  : positionne la fourmi
'   A, a        : colore en bleu une partie des cases, de maniere aleatoire
'   E, e        : efface (met en blanc) toutes les cases
'   +, -        : augmente ou diminue le zoom (taille en pixels
'                 des cases affichees : 0, 4, 8, 12, 16, 20, 24 ;
'                 0 = 1 pixel par case)
'   Fleches     : font defiler la zone d'affichage
'   *, /        : multiplie ou divise par 2 le pas de defilement
'                 (1 a 1024)
'   G, g        : affiche une grille (si zoom > 4)
'   S, s        : active ou desactive la sauvegarde automatique
'                 des images en mode "Generation"
'   Espace      : Passe en mode "Generation"
'
' En mode "Generation" les commandes suivantes sont actives :
'
'   G, g, S, s          : comme en mode "Creation"
'   Fleches, +, -, *, / : comme en mode "Creation"
'   Espace              : repasse en mode "Creation" et remet le
'                         compteur d'iterations a zero
'
' Les parametres sont ecrits de part et d'autre de la grille :
'   - coordonnees des cases affichees (X,Y)
'   - zoom, pas de deplacement, compteur d'iterations
'
' La touche Echap quitte le programme
' ********************************************************************

dim n% = 1000    ' Taille du "terrain de jeu"

dim z% = 12      ' Zoom (0, 4, 8, 12, 16, 20, 24)

dim fg% = 2      ' Taille de la fenetre graphique en multiple de 240
                 ' (240 = PPCM des valeurs de zoom)

dim creat% = TRUE      ' Mode "creation"
dim grid% = TRUE       ' Afficher la grille (si z > 4)
dim savepics% = FALSE  ' Sauvegarder les images
dim pas% = 1           ' Deplacement par les fleches (nb de cases)
dim iter% = 0          ' Iteration
dim pr = 0.5           ' Probabilite d'avoir une case blanche
                       '   lors d'un remplissage aleatoire
dim a%*1(n, n)         ' Grille (0=Blanc, 1=Bleu)
dim fi%, fj%           ' Position de la fourmi
dim r% = 2             ' Orientation (0=Nord, 1=Est, 2=Sud, 3=Ouest)

dim x0%, y0%           ' Coin sup. gauche de la grille affichee
dim w%                 ' Largeur de la grille en pixels
dim fps%               ' Nombre d'images par seconde
dim m%                 ' Nombre de cases affichees dans chaque direction
dim k1x%, kmx%         ' Coord. de la case affichee en haut a gauche
dim k1y%, kmy%         ' Coord. de la case affichee en bas a droite

fi = n \ 2
fj = fi

' --------------------------------------------------------------------
' Programme principal
' --------------------------------------------------------------------

init()

fb_form w + 2 * x0, w + 2 * y0, "Fourmi de Langton (" & n & " x " & n & ")"

fb_animate adr(draw_frame), adr(event_keyboard), adr(event_mouse), fps

' --------------------------------------------------------------------
' Sous-Programmes
' --------------------------------------------------------------------

sub init()
' Initialisation des parametres graphiques

  x0 = 20
  y0 = 30
  w = 240 * fg
  fps = n \ 20
  if z = 0 then m = w else m = w \ z
  k1x = (n - m) \ 2 + 1
  kmx = k1x + m - 1
  k1y = k1x
  kmy = kmx
end_sub

sub efface ()
' Efface toutes les cases

  dim i%, j%

  for i = 1 to n
    for j = 1 to n
      if a(i,j) = 1 then a(i,j) = 0
    next j
  next i
end_sub

sub aleat ()
' Coloriage aleatoire des cases

  dim i%, j%
  randomize timer

  for i = 1 to n
    for j = 1 to n
      if rnd > pr then a(i, j) = 1 else a(i, j) = 0
    next j
  next i
end_sub

sub deplace()
' Deplacement de la fourmi

  a(fi, fj) = a(fi, fj) xor 1        ' Changement de couleur
  r = (r + 2 * a(fi, fj) + 1) mod 4  ' Nouvelle orientation

  select r
    case 0 : fi = fi - 1             ' Deplacement
    case 1 : fj = fj + 1
    case 2 : fi = fi + 1
    case 3 : fj = fj - 1
  end_select

  iter = iter + 1
end_sub

function filename$()
' Genere le nom de fichier PNG pour 1 generation (Ex. 00000123.png)

  dim f$, L%

  f = str(iter)
  L = len(f)
  filename = string(8 - L, "0") + f + ".png"
end_function

sub printparam()
' Affichage des parametres

  dim a1x$, amx$, a1y$, amy$, Lx%, Ly%, y1%, y2%

  a1x = str(k1x)
  amx = str(kmx)
  a1y = str(k1y)
  amy = str(kmy)

  Lx = 10 * len(a1x)
  Ly = 10 * len(a1y)

  y1 = 8
  y2 = 40 + w

  fb_view
  fb_window

  fb_pen_color &h00FFFF

  fb_print "X:", 20, y1
  fb_print "-", 40 + Lx, y1
  fb_print "Y:", 160, y1
  fb_print "-", 180 + Ly, y1

  fb_print "Zoom:", 20, y2
  fb_print "Pas:", 100, y2
  fb_print "Iter:", 180, y2

  fb_pen_color &h00FF00

  fb_print a1x, 40, y1
  fb_print amx, 50 + Lx, y1
  fb_print a1y, 180, y1
  fb_print amy, 190 + Ly, y1

  fb_print str(z), 65, y2
  fb_print str(pas), 135, y2
  fb_print str(iter), 225, y2
end_sub

sub plotgrid ()
' Affichage de la grille

  if z < 8 then
    exit_sub
  end_if

  dim x%, y%

  fb_pen_color &h666666

  for x = 0 to w step z
    fb_line x, 0, x, w
  next x

  for y = 0 to w step z
    fb_line 0, y, w, y
  next y
end_sub

sub plotcell(i%, j%, x%, y%, xr%, yr%, z%)
' Coloration d'une case

  dim fourmi%, col%

  fourmi = (i = fi and j = fj)
  
  if a(i, j) = 0 and (not fourmi) then
    exit_sub
  end_if
    
  if fourmi then col = &hFF0000 else col = &h000099

  fb_pen_color col

  if z = 0 then fb_point x, y else fb_rectangle_fill xr, yr, z, z
end_sub
          
sub display()
' Affichage et sauvegarde de l'image

  dim i%, j%, i1%, j1%, x%, y%, xr%, yr%, z2%, h%

  z2 = z \ 2

  if z = 0 then h = 1 else h = z

  fb_cls

  fb_view x0, y0, w + x0, w + y0, , &hFFFFFF
  fb_window 0, 0, w + 1, w + 1

  fb_pen_color &hFFFFFF
  fb_rectangle_fill 0, 0, w, w

  if grid then plotgrid()

  x = z2
  xr = 0
  for j = 0 to m - 1
    y = z2
    yr = 0
    j1 = j + k1x
    for i = 0 to m - 1
      i1 = i + k1y
      plotcell i1, j1, x, y, xr, yr, z
      y = y + h
      yr = yr + h
    next i
    x = x + h
    xr = xr + h
  next j

  printparam()

  if not creat then
    if savepics then fb_save filename(), false
  end_if
end_sub

sub draw_frame(done%)
' Affichage du graphique et deplacement de la fourmi

  display()
  if not creat then deplace()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
' Traitement des touches du clavier

  select keycode
    case 27                      ' Echap
      done = TRUE

    case 32                      ' Barre d'espace
      creat = not creat
      if creat then iter = 0

    case 42                      ' *
      if pas < 1024 then
        pas = 2 * pas
      end_if

    case 43                      ' Plus
      if z < 24 then
        z = z + 4
        init()
      end_if

    case 45                      ' Moins
      if z > 0 then
        z = z - 4
        init()
      end_if

    case 47                      ' /
      if pas > 1 then
        pas = pas \ 2
      end_if

    case 65, 97                  ' A, a
      if creat then
        aleat()
        display()
      end_if

    case 69, 101                 ' E, e
      if creat then
        efface()
        display()
      end_if

    case 71, 103                 ' G, g
      grid = not grid

    case 83, 115                 ' S, s
      savepics = not savepics

    case 328                     ' Fleche haute
      k1y = max(1, k1y - pas)
      kmy = k1y + m - 1

    case 331                     ' Fleche gauche
      k1x = max(1, k1x - pas)
      kmx = k1x + m - 1

    case 333                     ' Fleche droite
      kmx = min(n, kmx + pas)
      k1x = kmx - m + 1

    case 336                     ' Fleche basse
      kmy = min(n, kmy + pas)
      k1y = kmy - m + 1
  end_select
end_sub

sub event_mouse(event_type%, mouse_check%, x%, y%, btn%, wheel%, done%)
' Traitement du clic de souris

  if not (creat and z > 0 and event_type = EVENT_MOUSE_BUTTON_PRESS) then
    exit_sub
  end_if

  dim i%, j%

  i = (w - y + y0) \ z + k1y
  j = (x - x0) \ z + k1x

  select btn
    case BUTTON_LEFT
      a(i, j) = a(i, j) xor 1
    case BUTTON_RIGHT
      fi = i
      fj = j
  end_select
end_sub


Compilateur FBPano - Page 7 Fourmi10
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptyVen 20 Jan 2017 - 12:22

Bonjour Jean.
Bonjour tout le monde.

J’ai testé le programme et j’apprécie fort bien  le zoom, le défilement et les autres options.
Cependant, il me semble (peut-être une simple impression Compilateur FBPano - Page 7 Yeux10 ) que le tracé est moins rapide que mon programme en Panoramic !
De toutes les façons, une fois de plus MERCI pour tout ce que tu fais.  Compilateur FBPano - Page 7 Bravo14
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 EmptySam 21 Jan 2017 - 9:56

Merci pour les tests papydall (et merci également à Ouf_ça_passe qui m'a envoyé ses observations par PM).

papydall a écrit:

Cependant, il me semble (...) que le tracé est moins rapide que mon programme en Panoramic !

C'est vrai mais le programme PANORAMIC ne calcule qu'une seule image, alors que le programme FBPano en calcule (théoriquement) 50 par seconde ! C'est donc le temps de calcul d'UNE image qu'il faut comparer Smile

Notes :

1) Il est possible que la cadence réelle (FPS) soit inférieure à 50 images par seconde. Je vais étudier cela ...

2) La détection des événements ralentit probablement le programme ; il est connu que cette détection n'est pas le point fort de FreeBASIC.

3) En appuyant sur S pendant que l'image se trace, on déclenche la sauvegarde automatique des images individuelles : on voit alors le répertoire de travail se remplir de fichiers PNG. C'est très impressionnant, et utile aussi si l'on veut par exemple rechercher les configurations symétriques créées par la fourmi au début de son évolution.

4) Ce programme fera l'objet d'un prochain article pour le magazine.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Compilateur FBPano - Page 7 Empty
MessageSujet: Re: Compilateur FBPano   Compilateur FBPano - Page 7 Empty

Revenir en haut Aller en bas
 
Compilateur FBPano
Revenir en haut 
Page 7 sur 11Aller à la page : Précédent  1, 2, 3 ... 6, 7, 8, 9, 10, 11  Suivant
 Sujets similaires
-
» Configurer FBide pour FBPano
» Container_begin
» Un éditeur pour FBPano
» Evolution de FBPano
» Nouvelle version 0.36

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: