Biomorphes de PICKOVER
Page 1 sur 1
Biomorphes de PICKOVER
- Code:
rem ============================================================================
rem Biomorphes de PICKOVER
rem Papydall - Juin 2017
rem ============================================================================
rem Les biomorphes sont issus d’un programme informatique.
rem L’algorithme permettant de tracer un biomorphe utilise les nombres complexes.
rem Il manipule une suite de complexes dans le plan complexe.
rem ============================================================================
rem RAPPEL :
rem Un nombre complexe n’est pas si complexe que ça !
rem Il s’appelle complexe parce qu’il est composé de deux parties :
rem L’une dite partie réelle et l’autre partie imaginaire.
rem Un nombre complexe z s’écrit sous la forme :
rem ______________
rem | |
rem | z = a + i*b |
rem |______________|
rem
rem Dans le plan complexe, z désigne l’affixe d’un point où la partie réelle a
rem en détermine l’abscisse et la partie imaginaire b, l’ordonnée.
rem ============================================================================
rem Le nombre i (qui s’appelle unité imaginaire) est tel que i² = -1
rem C’est-à-dire "i = racine carrée de moins un"
rem ============================================================================
rem Comme exemple, on s’intéresse au biomorphe appelé "radiolaire" à 12 branches
rem de la forme z³ + c
rem ============================================================================
dim xc,yc : xc = 0.5 : yc = 0.1 : ' c <--- xc + i*yc
dim rz,rza,iz,iza,j,k,n,xm,ym,t$
width 0,750
picture 10 : width 10,width_client(0)-100 : height 10,height_client(0)-100
top 10,50 : left 10,50 : 2d_target_is 10 : color 10,0,0,0
alpha 20 : font_size 20,14 : font_bold 20 : font_color 20,0,0,255 : left 20,150
t$ = "Biomorphe de Pickover : Radiolaire à 12 branches" + chr$(13)
t$ = t$ + "de la forme z³ + c ..... <ESC> pour arrêter ....."
caption 20,t$ : caption 0,"Tracé en cours ..."
xm = width(10) : ym = height(10)
for j = 50 to xm - 50
for k = 10 to ym
rza = -6.4 + 0.02 * j : iza = -3.5 + 0.02 * k
for n = 1 to 10
rz = power(rza,3) - 3 * rza * power(iza,2) + xc : ' partie réelle de z
iz = 3 * power(rza,2) * iza - power(iza,3) + yc : ' partie imaginaire de z
IF (ABS(rz) > 10) OR (ABS(iz) > 10) OR (SQR(rz*rz+iz*iz) > 10) THEN exit_for
rza = rz : iza = iz
next n
IF (ABS(rz) < 10) OR (ABS(iz) < 10)
2d_pen_color 255,0,0 : 2d_point j,k
end_if
IF (ABS(rz) < 8 ) OR (ABS(iz) < 8 )
2d_pen_color 255,255,0 : 2d_point j,k
end_if
IF (ABS(rz) < 6) OR (ABS(iz) < 6)
2d_pen_color 0,255,0 : 2d_point j,k
end_if
IF (ABS(rz) < 4) OR (ABS(iz) < 4)
2d_pen_color 255,0,0 : 2d_point j,k
end_if
IF (ABS(rz) < 2) OR (ABS(iz) < 2)
2d_pen_color 255,255,0 : 2d_point j,k
end_if
display
if scancode = 27 then terminate
NEXT k
NEXT j
caption 0,"Terminé"
rem ============================================================================
- Ce qui donne:
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