FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 19:48

» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 17:27

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Un arbre, un chapeau et rien d'autre.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

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

MessageSujet: Un arbre, un chapeau et rien d'autre.   Mer 10 Fév 2016 - 3:29

Code:

rem ============================================================================
rem       Arbre récursif
rem ============================================================================
Init()
Tree()
end
rem ============================================================================
' Vous pouvez modifier toutes ces valeurs
SUB Init()
    dim level : level = 12
    dim long  : long  = 80
    dim x     : x     = 300
    dim y     : y     = 400
    dim rot   : rot   = pi/2
    dim a1    : a1    = pi/6
    dim a2    : a2    = pi/8
    dim c1    : c1    = 0.7
    dim c2    : c2    = 0.85
    dim xs(level+1)
    dim ys(level+1)
    color 0,0,128,128
END_SUB
rem ============================================================================
' Procédure récursive
SUB Tree()
    xs(level) = x : ys(level) = y
    Branche()
    if level > 0
       level = level - 1 : long = long*C1 : rot = rot - A1
       Tree() : ' 1er Appel récursif
       long = long/C1*C2 : rot = rot + A1 + A2
       Tree() : ' 2 second appel récursif
       rot = rot - A2 : long = long/C2 : level = level + 1
    end_if
     x = xs(level) : y = ys(level)
END_SUB
rem ============================================================================
SUB Branche()
    dim_local xn,yn,w
    w = long/5 : if w < 1 then w = 1
    2d_pen_width w : 2d_pen_color 15*w,255,10
    yn = 0-sin(rot)*long + y : xn = cos(rot)*long + x : 2d_line x,y,xn,yn
    x = xn : y = yn : display
END_SUB
rem ============================================================================


Dernière édition par papydall le Jeu 11 Fév 2016 - 14:58, édité 1 fois (Raison : Pour ajouter le chapeau dans le titre.)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Mer 10 Fév 2016 - 17:51

Mon arbre ne plait à personne ! Sad  Sad
Pourtant il est généré par une procédure récursive  cheers et la documentation de Panoramic ne souffle pas un seul mot sur la récursivité. No
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Mer 10 Fév 2016 - 19:53

Je n'ai pas trop de temps en ce moment, alors je me suis contenté de lancer le code. c'est pourquoi je n'ai pas remarqué l'intérêt du code: la récursivité.

Donc à priori ça fonctionne en Panoramic, je ne le fait jamais car je pensais que ça pouvait poser problème.

Merci Papydall.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Mer 10 Fév 2016 - 20:36

king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

Nombre de messages : 10257
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Mer 10 Fév 2016 - 21:03

Ton arbre est superbe, Papydall !


Pour la récursivité, ça marche dans certaines conditions. Mais surtout, ne pas utiliser de variables locales, car dès le premier appel récursif, Panoramic signale une erreur sur le DIM_LOCAL...

Non, techniquement, Panoramic ne permet pas de procédures récursives, pour la boonne et simple raison qu'il n'y a de pile pour l'allocation de l'espace de travail propre à chaque instance de procédure. Les variables locales, tout comme les paramètres formels d'une SUB, sont définis dans la table de symboles de Panoramic, comme les autres variables, sous forme de noms tout en majuscules. La seule distinction est un préfixe qui est appliqué à ces noms: c'est le nom de la SUB, suivi d'un point d'exclamation, suivi du nom de la variable ou du paramètre. Et c'est ainsi que dès le premier appel récursif, ça plante sur un DIM_LOCAL. Pour les paramètres formels, ça passe au niveau de l'appel (et je ne sais même pas pourquoi...), car ça ne devrait pas passer non plus. Mais tant qu'au moins ça, ça marche, on ne va pas être plus royaliste que le Roi...

Voici un exemple célèbre d'algorithme récursif. Il a fallu ruser car on ne peut pas définir de fonctions:
Code:
dim n%, fac%
n% = 6
fac% = 1
faculte(n%)
print str$(n%)+"! = "+str$(fac%)
end

sub faculte(k%)
if k%>1
  n% = k% - 1
  fac% = fac%*k%
  faculte(n%)
end_if
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 1:53

Merci Klaus pour ces explications.
Ton code fonctionne, mais j’ai corrigé un mini bug (pas notre ami, non, non) sur l’affichage du résultat puisque la sub modifie la variable n% passée comme paramètre.
Voici le code modifié, en fait j’ai sauvegardé n% dans sauv% ( quel exploit j’ai réalisé !)
Code:

dim n%, fac%, sauv%
n% = 6  : sauv% = n%
fac% = 1
faculte(n%)
print str$(sauv%)+"! = "+str$(fac%)
end

sub faculte(k%)
if k%>1
  n% = k% - 1
  fac% = fac%*k%
  faculte(n%)
end_if
end_sub

Et pour te remercier, je t’offre (à toi spécialement, mais aussi à tous ceux qui passent par là) mon chapeau_bas.bas
Il est un peu lent à se réaliser, mais ça vaut le coup de patienter le temps qu’il prendra.

Code:

rem ============================================================================
rem         Chapeau_bas
rem ============================================================================
width 0,650 : picture 10 : full_space 10 : 2d_target_is 10 : color 10,0,0,0
Chapeau()
print_target_is 10 : font_bold 10 : font_name 10,"tahoma" : font_size 10,20
font_color 10,200,100,50 : print_locate 200,20 : print " Chapeau bas !!! "
end
rem ============================================================================
SUB Chapeau()
    dim_local x1,x2,x4,y1,y2,x,y,i,a,l,r,f
    x1 = 300 : y1 = 300 : x2 = x1*x1 : y2 = 200
    For x = 0 to x1
        x4 = x*x : L = 0-y1 :  A = sqr(abs(x2 - x4))
        For I = 0-A to A
            2d_pen_color mod((abs(i/2)+x/2),255), abs(255-abs(i/2)),mod(abs(a/2),255)
            R = sqr(X4+I*I)/x1 : F = (1-R)*cos(12*R) : Y = I/5+F*y2
            If Y > L then l = y : y = y1-y : 2D_point x1-x,y : 2D_point x1+x,y
            display
        Next I
    Next x
END_SUB
rem ============================================================================

Voici le résultat:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

Nombre de messages : 10257
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 3:36

Très joli, Papydall ! Merci !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2410
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 9:56

Notre papydall travaille du chapeau maintenant !  Wink

Très belles réalisations, bravo !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 14:56

Bonjour tout le monde.

Aujourd’hui on a gagné un connaisseur de plus de la qualité des réalisations de Papydall.
Alors, chapeau !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 17:40

Pas mal, j'avais déjà vu cet arbre mais en monochrome.
Pour ce qui est de la récursivité, c'est simple à faire avec l'interpréteur quand on a compris 'le truc'. J'ai posté un exemple de récursion: la tour de hanoï
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Jeu 11 Fév 2016 - 21:12

Chapeau, chapeau,
c'est une soucoupe volante, ça !
Arrow alien Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Jeu 11 Fév 2016 - 22:00

Heu... moi j'ai vu un flan aux œufs dans une assiette creuse avec une morille au centre.

lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Ven 12 Fév 2016 - 3:17

jjn4 a écrit:
Chapeau, chapeau,
c'est une soucoupe volante, ça !

Tu as  de quoi retourner sur Mars.  alien

Jean Claude a écrit:
Heu... moi j'ai vu un flan aux œufs dans une assiette creuse avec une morille au centre.

On voit bien le chef cuisinier cordon bleu !
Spoiler:
 


En réalité, en concoctant  mon code, je ne savais pas ce que ça va donner.
Comme ça m’a plu, j’ai dis « chapeau bas, Papydall ».
Voilà vous connaissez tout.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Parpaiun

avatar

Nombre de messages : 192
Age : 78
Localisation : HERAULT
Date d'inscription : 15/04/2015

MessageSujet: Chapeau bas (suite)   Sam 13 Fév 2016 - 16:26

Papydall, est ce normal ces effets de scintillements (ou de flashs répétitifs ) pendant l'affichage animé de ton "chapeau bas" sur l'écran ? Ça me fait mal aux yeux tu sais ! Pour les autres, ça craint de provoquer une crise d'épilepsie ! de Parpaiun Shocked Shocked Shocked
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Sam 13 Fév 2016 - 17:09

Bonjour Papaiun.
Je te répond car j'ai été surpris par ta question. Je me suis dit: "Quels scintillements? Je ne me souvenais pas en avoir eu.

J'ai donc relancé le programme de Papydall, et j'ai constaté une chose: Si j’agrandis un un peu la fenêtre sur le bord, j’ai effectivement ces effets. Si je rétrécie pour n'avoir que la zone noire, ils disparaissent. C'est d'ailleurs la première fois que je constate ce phénomène.
Revenir en haut Aller en bas
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Sam 13 Fév 2016 - 17:17

Salut Parpaiun.
Je suis content de ton retour.


Parpaiun a écrit:
Papydall, est ce normal ces effets de scintillements (ou de flashs répétitifs ) pendant l'affichage animé de ton "chapeau bas" sur l'écran ? Ça me fait mal aux yeux tu sais ! Pour les autres, ça craint de provoquer une crise d'épilepsie ! de Parpaiun      

Le chapeau_bas n’est pas un dessin animé : c’est un dessin tout court.
Il n’y a absolument pas de scintillements lors de son tracé.
Tout au plus, un très léger effet de moiré  à peine perceptible pour des yeux de lynx (ou de Lyncée)

Pour les yeux, j’en sais quelque chose et je ne me  permets pas de provoquer une crise d’épilepsie à quiconque !
Et si mon « chapeau bas » te gêne à ce point, tu as deux choix à faire :
*** 1)  Tu mets la ligne 19 display en REM : tu ne verra plus le chapeau se dessiner et il s’affichera d’un coup quand il sera dessiné. Mais là, tu perds le plaisir de voir l’œuvre en création !
*** 2) Tu envoies le fichier vers la corbeille  pour t’épargner le mal aux yeux.

Fais ton choix lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Sam 13 Fév 2016 - 17:47

Cosmos70 a écrit:

J'ai donc relancé le programme de Papydall, et j'ai constaté une chose: Si j’agrandis un un peu la fenêtre sur le bord, j’ai effectivement ces effets. Si je rétrécie pour n'avoir que la zone noire, ils disparaissent. C'est d'ailleurs la première fois que je constate ce phénomène.

Ce phénomène je l’ai déjà constaté : ça arrive quand les dimensions du PICTURE correspondent exactement à celles du FORM.
Tout changement de ces dimensions en cours d’exécution du programme provoque ces scintillements gênants.

Essayer le code suivant
Code:

picture 10 : full_space 10 : color 10,0,0,0 : 2d_target_is 10 : 2d_pen_color 255,255,255
' width 10,width(0)
2d_circle 300,220,200

Modifier les dimensions de la fenêtre à l’aide de la souris et bonjour les dégâts :  le PICTURE scintille !
Activer la ligne 2 en enlevant le REM (‘) : toute modification des dimensions de la fenêtre  NE provoque PLUS aucun scintillements !
Seules des "ascenseurs" (disgracieux ?) apparaîtront.

Pour ne pas avoir ces ascenseurs, modifier le code comme ceci

Code:

picture 10 : full_space 10 : color 10,0,0,0 : 2d_target_is 10 : 2d_pen_color 255,255,255
 width 10,width(0)-20
2d_circle 300,220,200

Il n'y a plus ni scintillements, ni ascenseurs.
C'est à vous de tirer les conclusions. king


Dernière édition par papydall le Sam 13 Fév 2016 - 20:59, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Sam 13 Fév 2016 - 20:55

Le problème du scintillement n'est pas nouveau, mais je n'avais jamais remarqué qu'une variation de dimension influait sur cet effet. Entre parenthèses, chapeau bas pour ton programme. Comme tu le sais, j'évite d'intervenir, cela ne signifie pas que ça m’épate.
Revenir en haut Aller en bas
papydall

avatar

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

MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   Sam 13 Fév 2016 - 21:01

sunny sunny sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Un arbre, un chapeau et rien d'autre.   

Revenir en haut Aller en bas
 
Un arbre, un chapeau et rien d'autre.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un autre mystère
» Comment faire un lien vers une autre page du site ?
» mettre à l'heure d'un autre pays
» [Résolu] une anime sous forme d'un arbre de recherche
» Comment faire un lien vers un autre site?

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: