Forum de Programmation en langage PANORAMIC
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Mots-clés

fichiers  

Derniers sujets
» Useful Dog
Ven 6 Avr - 14:25 par Papydall-Admin

» Les Courbes de Bézier cubiques
Ven 30 Mar - 4:08 par Papydall-Admin

» Animation flash
Mer 14 Mar - 2:50 par Papydall-Admin

» Mega-Strip
Lun 12 Mar - 1:24 par Papydall-Admin

» Les oiseaux de mon jardin
Ven 9 Mar - 1:08 par Papydall-Admin

»  Création et gestion d’un livre
Jeu 8 Mar - 15:37 par Papydall-Admin

» Deux questions d’éthique
Mar 6 Mar - 1:56 par Papydall-Admin

»  La Blague Du Jour
Lun 5 Mar - 2:50 par Papydall-Admin

» Branle-Fesse
Lun 5 Mar - 2:46 par Papydall-Admin

Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930

Calendrier Calendrier


Fougère de Barnsley

Aller en bas

Fougère de Barnsley

Message par Papydall-Admin le Jeu 13 Oct - 14:24

Code:

rem ============================================================================

rem                Fougère de Barnsley
rem                Par Papydall

rem ============================================================================
dim x,y,n,r,x1,y1
dim a,b,c,d,e,f
width 0,1000 : height 0,800
caption 0, "!!! FOUGERE DE BARNSLEY PAR PAPYDALL !!! Veuillez patienter ... <CLICK>  Pour arrêter"
color 0,0,0,0 : 2d_pen_color 0,255,0 : cls
for n = 1 to 50000
  r = rnd (1)
  if r <= 0.01 :a = 0 : b = 0 : e = 0 : c = 0 : d = 0.16 : f = 0
  else
    if r <= 0.08 : a =0.2 : b = -0.26 : e = 0 : c = 0.23 : d = 0.22 : f = 1.6
    else
      if r <= 0.15 : a = -0.15 : b = 0.28 : e = 0 : c = 0.26 : d = 0.24 : f = 0.44
      else
         a = 0.85 : b = 0.04 : e = 0 : c = -0.04 : d = 0.85 : f = 1.6
      end_if
    end_if
  end_if
  x = a*x + b*y + e : y = c*x +d*y + f
  x1 = 200 + (x + 3) * 70 : y1 = 720 - y * 70
  2d_point x1, y1
  if scancode <> 0 then end
next n
caption 0,"Terminé !!!"
rem ============================================================================

_________________
Invité, merci d'être passé par ici.
avatar
Papydall-Admin
Admin

Messages : 94
Réputation : 0
Date d'inscription : 08/09/2015
Age : 68
Localisation : MOKNINE (Tunisie)

Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Re: Fougère de Barnsley

Message par Papydall-Admin le Jeu 13 Oct - 14:25

Code:

rem ============================================================================

rem                Fougère de Barnsley
rem                   Par Papydall

rem  IFS : Iterated Function System (Système de fonction itérée)
rem ============================================================================

' C'est un type de fractales assez original qui a été introduit par Michael Barnsley.
' Ce type de fractales n'est pas facile à expliquer à des non-mathématiciens.
' Leur structure est décrite par un ensemble de fonctions affines qui calculent
' les transformations appliquées à chaque point par homothétie, translation et rotation.
' Chaque transformation utilise 2 fonctions pour calculer les nouvelles valeurs x1 et y1
' des coordonnées x et y de chaque point.

' ax + by + e = x1
' cx + dy + f = y1

' Enfin une probabilité comprise entre 0 et 1 est associée à chaque transformation.
' Ces images sont donc construites par un processus aléatoire :
' On voit apparaître sur l'écran des points de plus en plus nombreux qui dessinent
' une forme floue, puis de plus en plus précise.
' En général le programme permet de fixer le critère d'arrêt du calcul.
' Plus le temps choisi est long, plus les images sont précises.

rem ============================================================================

dim maxpoints,p,p1,p2,p3,x,y,n,xt
maxPoints = 100000
p1 = .77 :  p2 = .89 :  p3 = .99 : ' Pourcentage de probabilités
x = 0 : y  = 0 : ' point initial
full_space 0 : color 0,0,0,0

for n = 1 to maxPoints
    p = Rnd(1) : ' 0 <= p < 1
    xt = x
    if p < p1 : ' transformation T1
       x =  0.85 * x  + 0.04 * y + 0.075 : y = -0.04 * xt + 0.85 * y + 0.18
    else
       if p < p2 : ' transformation T2
           x = 0.20 * x  - 0.26 * y + 0.4 : y = 0.23 * xt + 0.22 * y + 0.045
       else
           if p < p3 : ' transformation T3
              x = -0.15 * x  + 0.28 * y + 0.575 : y =  0.26 * xt + 0.24 * y - 0.086
           else  : ' transformation T4
              x = 0.5 :  y = 0.16 * y
           end_if
       end_if
    end_if
    if n > 100
       2d_pen_color 0,255,0 : 2d_point  600*x-100, 600-500*y : ' 1ère fougère
       2d_pen_color 255,mod(n,255),0 : 2d_point 850-600*x, 600-500*y : ' 2ème fougère
       2d_pen_color mod(n,255),mod(n,255),0 : 2d_point 520+ 600*x, 600-500*y : ' 3ème fougère
       2d_pen_color 0,mod(n,255),255 : 2d_point 1450-600*x, 600-500*y :' 4ème fougère
    end_if
    caption 0,"!!! FOUGERE DE BARNSLEY PAR PAPYDALL !!! Veuillez patienter ... <CLICK>  Pour arrêter ... Itération : " + str$(n) + " / " + str$(maxPoints)
    if scancode <> 0 then terminate
next n
caption 0,"VIVE LES MATHEMATIQUES !!! Que c'est beau !!! Que c'est magnifique !!!"
rem ============================================================================

_________________
Invité, merci d'être passé par ici.
avatar
Papydall-Admin
Admin

Messages : 94
Réputation : 0
Date d'inscription : 08/09/2015
Age : 68
Localisation : MOKNINE (Tunisie)

Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum