papydall
Number of posts : 39 Age : 73 Localisation : TUNISIA Registration date : 2013-03-16
| Subject: Biomorphes de PICKOVER Sun Jun 18, 2017 2:33 am | |
| - 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) < OR (ABS(iz) < 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 ============================================================================
| |
|