Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| La croissance de végétaux | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: La croissance de végétaux Mer 14 Mar 2012 - 21:44 | |
| Salut Panoramiciennes et Panoramiciens ! Le programme ci-dessus (Croissance des végétaux) est une application du L-SYSTEM (Système de : Aristid LINDENMEYER) inventé en 1968. Pour ceux qui veulent en savoir plus sur cette grammaire formelle qui permet un procédé algorithmique consistant à modéliser le processus de développement et de prolifération des plantes ou des bactéries , WIKIPEDIA vous expliquera tout. Le programme est loin d’être optimisé mais il fonctionne et il est parfaitement perfectible. - Code:
-
' ****************************************************************************** ' ' CROISSANCE DE VEGETAUX PAR PAPYDALL ' ' méthode de ( L-systèmes ) ' ' ****************************************************************************** dim pi : pi = 4*atn(1) dim xm,ym,NumCh%,NbEvol%,AngRamDeg, princ$,Lp%,ram%,r,i%,L$,L0princ%,Lgprinc%,L1princ% dim ch$(20),L0%(20),L1%(20),xn(200),yn(200),a(200) dim Long%,plus$ ,Lch% ,n%, c , L ,x, y ,f dim angle, pasmax, dpas,ramax%,nb%,pas,noeud%,rf,h%
label initialisation, evolution,dessin,soleil label verification, erreur,rien,tige,fleur,ouvrir,hasard,fermer
height 0 ,800 : width 0,800 xm = 700 : ym = 700 ' ****************************************************************************** caption 0 , " CROISSANCE DE VEGETAUX PAR PAPYDALL" gosub initialisation gosub evolution gosub dessin end
' ******************************************************************************
initialisation: cls print : print print " SIMULATION D'EVOLUTION DE VEGETAUX" print print " Par la méthode des L-systèmes d'Aristid LINDENMEYER 1968" print : print print print " Codage du principe d'évolution : " print " ================================ " print print " 0 : Fleur " print " 1 : Tige" print " 3 : Fin de ramification" print " 4 : Ouverture de ramification à gauche" print " 5 : Ouverture de ramification au hasard" print " 6 : Ouverture de ramification à droite" print : print " Une touche pour continuer"
' ============================================================================== ' Essayez l'un des principes suivants (en ligne REM) ' vous pouvez entrer vos propres principes, en veillant bien à respecter ' la methode du codage. ' Une ouverture de ramification doit toujours être suivie d'une fermeture ' NbEvol% : nombre d'évolutions > 2 ' AngRamDeg : angle de ramification en degrés 0 < AngRamDeg < 90 ' f : facteur de pas pour le tracé (à ajuster) ' ==============================================================================
princ$ = "1440316030366031403031140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 55 ' princ$ = "1415030361503031140360310" : NbEvol% = 15 : AngRamDeg = 16 : f = 28 ' princ$ = "140360310" : NbEvol% = 7 : AngRamDeg = 20 : f = 6 ' princ$ = "14031603140310" : NbEvol% = 6 : AngRamDeg = 20 : f = 10 ' princ$ = "1403603140360310" : NbEvol% = 6 : AngRamDeg = 25 : f = 27 ' princ$ = "14036031403160310" : NbEvol% = 6 : AngRamDeg = 25 : f = 24 ' princ$ = "1603140316031503140310" : NbEvol% = 5 : AngRamDeg = 36 : f = 18 ' princ$ = "150316031403160340310" : NbEvol% = 5 : AngRamDeg = 29 : f = 16
repeat : until key_down_code <> 0 gosub verification ch$(1) = "0" : L0%(1) = 1 : L1%(1) = 0 AngRamDeg = AngRamDeg * pi / 180 return
' ******************************************************************************
verification: print : print " Veuillez patienter... <ESC> pour arrêter" repeat if scancode = 27 then terminate Lp% = len(princ$) ram% = 0 : r = 0 for i% = 1 to Lp% L$ = mid$(princ$,i%,1) if L$ = "0" L0princ% = L0princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "1" L1princ% = L1princ% + 1 if ram% = 0 Lgprinc% = Lgprinc% + 1 end_if else if L$ = "3" ram% = ram% - 1 else if (L$ = "4") or (L$ = "6") or (L$ = "5") ram% = ram% + 1 else R = 1 end_if end_if end_if end_if next i% until (R < 1) and (ram% = 0) return
' ******************************************************************************
evolution:
for NumCh% = 1 to (NbEvol% - 1) Long% = 0 for i% = 1 to len(ch$(NumCh%)) L$ = mid$(ch$(NumCh%),i%,1) if L$ = "0" plus$ = princ$ L0%(NumCh% + 1) = L0%(NumCh% + 1) + L0princ% L1%(NumCh% + 1) = L1%(NumCh% + 1) + L1princ% if ram% <> 0 long% = long% + lgprinc% end_if end_if if L$ = "1" plus$ = "11" L1%(NumCh% + 1) = L1%(NumCh% + 1) + 2 if ram% = 0 : Long% = Long% + 2 end_if end_if if L$ = "5" plus$ = str$(int(rnd(2)+2)*2) ram% = ram% + 1 end_if if L$ = "3" if ram% > ramax% ramax% = ram% end_if ram% = ram% - 1 plus$ = "3" end_if if (L$ = "4") or (L$ = "6") plus$ = L$ ram% = ram% + 1 end_if ch$(NumCh% + 1) = ch$(NumCh% + 1) + plus$ next i% if NumCh% < (NbEvol% - 1) gosub erreur end_if next NumCh% return
' ******************************************************************************
erreur:
Lch% = len(ch$(NumCh% + 1))+ L1%(NumCh% + 1)+ L0%(NumCh% + 1)*(Lp% - 1) if Lch% > 32767 beep print " La chaîne à traiter est trop longue." print " Vous serez limité à la géneration n° " ; NumCh% + 1 n% = NumCh% + 1 : NumCh% = NbEvol% : NbEvol% = n% end_if return
' ******************************************************************************
dessin: cls print " principe : " ; princ$ ; " Génération n° : " ; NumCh% ; " " ; 2d_fill_color 0,0,127 2d_rectangle 10,20,790,690 angle = pi/2 : pasmax = ym*f/long% : dpas = (pasmax/3)/ramax% for NumCh% = 1 to NbEvol% y = ym -20 : x = xm/2 for i% = 1 to len(ch$(NumCh%)) nb% = val(mid$(ch$(NumCh%),i%,1)) pas = pasmax - noeud% * dpas : rf = pas/8 select nb%+1 case 1 : gosub fleur case 2 : gosub tige case 3 : gosub rien case 4 : gosub fermer case 5 : gosub ouvrir case 6 : gosub hasard case 7 : gosub ouvrir end_select next i% next NumCh%
gosub soleil print " Terminé " return
' ******************************************************************************
rien: return
' ******************************************************************************
tige: c = x : L = y x = x + pas * cos(angle) : y = y - pas * sin(angle)
2d_pen_color 0,255,0 : 2d_line c,l,x,y return
' ******************************************************************************
fleur: pas = pas - (2*rf) : gosub tige c = x + rf * cos(angle) : L = y - rf * sin(angle) 2d_pen_color 255,0,0 : 2d_circle c, L, rf+1
return
' ******************************************************************************
ouvrir: noeud% = noeud% + 1 : a(noeud%) = angle : xn(noeud%) = x : yn(noeud%) = y angle = angle + (5 - nb%) * AngRamDeg return
' ******************************************************************************
hasard: gosub ouvrir h% = rnd(2) + 1 if h% = 2 angle = angle + AngRamDeg else angle = angle - AngRamDeg end_if return
'*******************************************************************************
fermer: x = xn(noeud%) : y = yn(noeud%) : angle = a(noeud%) : noeud% = noeud% - 1 return
' ******************************************************************************
soleil: x = 30 +rnd(700) : y = 30 + rnd(100) 2d_fill_color 255,255,0 : 2d_circle x,y,20 return
' ******************************************************************************
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: La croissance de végétaux Mer 14 Mar 2012 - 21:52 | |
| Super Genial comme prog ^^ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: La croissance de végétaux Mer 14 Mar 2012 - 22:27 | |
| Salut Jicehel. Merci beaucoup pour tes encouragements. Il ya environ un mois que j’ai fait la découverte de Panoramic. Mais il ya une bonne dizaine d’années que je n’ai pas écrit la moindre ligne de code que ce soit en Basic ou autre langage. Je me remets donc en douceur, d’autant plus que je suis peut-être le plus âgé (ou le moins jeune !) du Forum et que ma mémoire commence à me faire des tours.
| |
| | | Invité Invité
| Sujet: Re: La croissance de végétaux Mer 14 Mar 2012 - 23:55 | |
| Bonsoir, J'interviens rarement pour ce type de programme, vu qu'ils me dépassent. Mais ce que vous faites, comme d'autres que j'ai vu plus loin, c'est magnifique! - Citation :
- que je suis peut-être le plus âgé
J'en ai deux de plus, mais le programme que je fais actuellement sera surement le dernier. Et je n'interviendrai plus, vu qu'il n'y a plus d'intervention sur ce que je fais, et je suppose que mes programmes n'ont pas d'intérêt ici. Donc tu vas certainement être le doyen je pense. Bonne chance et bonne programmation! Amusez-vous bien! |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: La croissance de végétaux Jeu 15 Mar 2012 - 0:09 | |
| Heu Cosmos, tu te trompes sur les raisons, tes programmes sont très intéressant mais plus complexe à comprendre et il faut du temps pour s'y mettre les comprendre et te donner des conseils / idées. Ton éditeur pour Panoramic peut sans doute être très intéressant pour nombre d'entre nous. Klaus semble un peu absent, Nardo et même Jack semble occupé actuellement et un peu plus discret. Continues à faire ce qui te plait (et quand tu en as envie). N'arrètes pas par ce que tu n'as pas de commentaire, mais fait le à ton rythme quand tu en as envie (temps que tu en as envie, après, si l'envie te passe, bien sût, c'est un autre sujet ...) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: La croissance de végétaux Jeu 15 Mar 2012 - 0:29 | |
| Salut cosmos70 ! Je suis totalement d'accord avec ce qu'a dit Jicehel. Quant à moi, ça fait seulement 11 jours que je suis inscrit sur ce forum et je ne peux pas intervenir car je manque de compétence. Tu fais certainement d'excellents programmes. Et je ne peux qu'à t'inviter à poursuivre.
| |
| | | Invité Invité
| Sujet: Re: La croissance de végétaux Jeu 15 Mar 2012 - 2:14 | |
| Je réponds là, mais ce n'est pas le sujet, et c'est d'ailleurs hors sujet, et papydall tu n'es pas concerné. Tu débutes ici.
Mais là je ne suis pas d'accord. Lorsqu'il n'y a pratiquement jamais de réponse ou de retour d'information sur ce que publie quelqu'un, c'est un manque de respect envers celui-ci. Il m'est arrivé de demandé comment tel programme fonctionnait chez les autres, sauf jamais avoir de réponses. Je ne demande pas merci, d'ailleurs j'e n'ai pas l'habitude d'en recevoir, mais au moins de savoir comment cela se passe.
J'avais pris la décision de me désinscrire comme là fait Nicola, mais je me dis que s'il y a un gros bug, ou un gros problème je serais coincé. Donc personnellement, en ayant plus de réponse, et plutôt que de me traiter de sale con que je suis, ou qu'est-ce que je fous là, je préfère arrêter. Car on devrait avoir du plaisir à publier un programme, et pour moi c'est le contraire. Je m'injurie. Si je veux croire que je suis encore intelligent (chose que j'ai toujours pensé, et c'est mon défaut de le croire), je dois arrêter pour avoir du plaisir encore un peu pour moi.
Merci de votre attention, et pour moi le sujet est clos. Il y a deux points de vue différents, mais il y a surtout ce que je ressens. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: La croissance de végétaux Jeu 15 Mar 2012 - 12:03 | |
| Salut Cosmos, Je comprend ton agacement, mais je rejoins Jicehel sur le fait que tes programmes sont trop complexes pour nous, et que, de ce fait, il nous est difficile de les commenter. Reste cool, on a besoin de toi comme les autres... A+ edit: et Bravo à Papydall pour ce qui pourrait faire un joli sapin de Noël | |
| | | Contenu sponsorisé
| Sujet: Re: La croissance de végétaux | |
| |
| | | | La croissance de végétaux | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |