Forum de Programmation en langage PANORAMIC
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Mots-clés

Derniers sujets
»  Simuler l’appui d'une touche ou combinaison de touches
Sam 16 Sep - 13:58 par Admin

» Régalez-vous !
Sam 29 Juil - 11:42 par Admin

» Les bienfaits du rire
Ven 7 Juil - 0:04 par Admin

» Derrière chaque beau parleur se cache un magnifique menteur
Ven 7 Juil - 0:01 par Admin

» Carré magique d’ordre 3 à 99 et plus si affinité !
Mer 5 Juil - 3:21 par Admin

» Dessine-moi une étoile
Mar 4 Juil - 17:32 par Admin

»  Equation paramétrique de la super-ellipse
Mar 4 Juil - 17:29 par Admin

»  Exécution des fichiers CPL
Sam 1 Juil - 14:01 par Admin

» Un papa à la page.
Ven 30 Juin - 15:01 par Admin

Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Calendrier Calendrier


Fougère de Barnsley

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

Fougère de Barnsley

Message par 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
Admin
Admin

Messages : 68
Date d'inscription : 08/09/2015
Age : 67
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 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
Admin
Admin

Messages : 68
Date d'inscription : 08/09/2015
Age : 67
Localisation : MOKNINE (Tunisie)

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

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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