Harmonographe
Page 1 sur 1
Harmonographe
- Code:
rem ============================================================================
rem Harmonographe
rem Par Papydall
rem ============================================================================
Harmonographe()
end
rem ============================================================================
SUB Init()
dim A1,A2,A3,A4 : ' Si A2 et A4 sont nuls, on obtient des figures de Lissajous
dim D1,D2,D3,D4 : ' Paramètres d'amortissement
' L'introduction d'un amortissement fait converger la courbe vers le point central.
dim F1,F2,F3,F4
dim phi1,phi2,phi3,phi4
dim x,y,t,p,xc,yc,z, i, j
p = pi/180
width 0,1024 : height 0,screen_y
xc = width(0)/2 : yc = screen_y/2 -50 : z = yc/4
color 0,0,0,0 : 2d_pen_width 2
END_SUB
rem ============================================================================
SUB Composante_X()
A1 = 2.00 : A2 = 2.00 : ' de 0.0 à 4.0
F1 = 5 - j/2 : F2 = j / 2 : ' de 0.0 à 5.0
Phi1 = 0*p : Phi2 = 180*p : ' de 0 à 360°
D1 = 0.01 : D2 = 0.00123 : ' de 0.0 à 1.0
END_SUB
rem ============================================================================
SUB Composante_Y()
A3 = abs (5.5 - j) : A4 = j/4 : ' de 0.0 à 4.0
F3 = 1.50 : F4 = 2.50 : ' de 0.0 à 5.0
Phi3 = 90*p : Phi4 = 90*p : ' de 0 à 360°
D3 = 0.0123 : D4 = 0.00 : ' de 0.0 à 1.0
END_SUB
rem ============================================================================
SUB Harmonographe()
dim_local t
caption 0,"Harmonographe par Papydall <CLICK> pour passer à la courbe suivante ou <ESC> pour quitter"
while scancode <> 0
pause 50
end_while
Init()
for j = 1 to 8
cls
Composante_X() : Composante_y()
x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2)
y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4)
t = Pi * -1
for i = 0 to 15000
t = t + p
x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2)
y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4)
2d_pen_color 250 - i*1/100,255 - abs((x*z+xc)-512)*0.5,abs((y*z+yc)-screen_y/2)*0.5
if i = 0 : 2d_poly_from xc+z*x,yc+z*y : else : 2d_poly_to xc+z*x,yc+z*y : end_if
if scancode <> 0 then exit_for
next i
if scancode = 27 then terminate
wait 3000
next j
caption 0,"Terminé"
END_SUB
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