Fougère de Barnsley
Page 1 sur 1
Fougère de Barnsley
- 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 ============================================================================
Re: Fougère de Barnsley
- 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 ============================================================================
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Lun 1 Jan - 0:25 par Papydall-Admin
» A ceux qui célèbre Noël, bonnes fêtes
Dim 24 Déc - 10:49 par Papydall-Admin
» Joyeux Noël et Bonne Année
Ven 8 Déc - 1:34 par Papydall-Admin
» Planets of the Solar System : Tilts and Spins
Lun 20 Mar - 15:43 par Papydall-Admin
» Bonne Année 2023
Sam 31 Déc - 1:39 par Papydall-Admin
» Fractals - Mandelbrot
Ven 21 Aoû - 22:51 par Papydall-Admin
» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
Mer 21 Nov - 1:08 par Papydall-Admin
» Balises {USER...}
Lun 19 Nov - 22:12 par Papydall-Admin
» Useful Dog
Ven 6 Avr - 14:25 par Papydall-Admin