Dessine-moi une étoile
Page 1 sur 1
Dessine-moi une étoile
- Code:
rem ============================================================================
rem Etoiles
rem ============================================================================
Init()
Que_Le_Spectacle_Commence()
end
rem ============================================================================
SUB Init()
dim CX,CY : ' centre de l'étoile
dim Rayon : ' rayon de l'étoile
dim Nbranche : ' nombre de branches de l'étoile
dim resX,resY : ' Résolution de l'écran
dim nbr : nbr = 500 : ' Nombre d'étoiles
dim etoile(nbr,2) : ' Tableau des coordonnées des centres des étoiles
dim r,g,b : ' Composantes de la couleur du tracé
full_space 0 : picture 10 : full_space 10
2d_target_is 10 : color 10, 255, 255, 196 : ' Jaune pale
resX = width_client(10) : resY = height_client(10)
alpha 20 : font_color 20,0,0,255 : font_size 20,50 : font_name 20,"arial"
top 20,200 : left 20,400 : caption 20,"That's all folks !" : hide 20
END_SUB
rem ============================================================================
SUB CalculerEoile(CX, CY, Rayon, Nbranche , r, g, b)
dim_local i, prof, CentreX, CentreY, Angle
Prof = int(Rayon + rnd(Rayon + 120)) : ' prodondeur des branches de l'étoile aléa entre Rayon et Rayon + 120
for i = 0 to (2 * Nbranche - 1)
Angle = i * PI / Nbranche : ' angle au sommet
if Odd(i) > 0 : ' parité des sommets
CentreX = CX + int(Rayon * (Rayon - Prof) * cos(Angle) / Rayon) : ' introduction du paramètre Prof
CentreY = CY + int(Rayon * (Rayon - Prof) * sin(Angle) / Rayon) : ' pour la prodondeur des branches
else
CentreX = CX + int(cos(Angle) * Rayon)
CentreY = CY + int(sin(Angle) * Rayon)
end_if
etoile(i,1) = CentreX : etoile(i,2) = CentreY : ' stockage de la série de points
next i
DessinerEtoile(Nbranche)
END_SUB
rem ============================================================================
SUB DessinerEtoile(Nbranche)
dim_local i
2d_pen_color r,g,b : 2d_poly_from etoile(1,1) , etoile(1,2)
for i = 0 to 2*Nbranche-1 : 2d_poly_to etoile(i,1) , etoile(i,2) : next i
2d_poly_to etoile(0,1) , etoile(0,2)
' 2d_flood cx,cy, r,g,b
END_SUB
rem ============================================================================
SUB Que_Le_Spectacle_Commence()
dim_local n
n = 0
2d_pen_width 2
repeat
n = n + 1
Cx = int(rnd(ResX)) : CY = int(rnd(ResY)) : Rayon = int(5+rnd(100))
Nbranche = int(5+rnd(21)) : ' Nombre des branches de l'étoile de 5 à 25
r = int(rnd(256)) : g = int(rnd(256)) : b = int(rnd(256)) : ' Couleur aléatoire
CalculerEoile(CX, CY, Rayon, Nbranche , r, g, b)
display : pause 200
if mod(n,51) = 0 : ' effacement pour aérer la toile
pause 1000
color 10, 255, 255, 196 : ' couleur du fond jaune pale
end_if
caption 0, str$(n) + "/ " + str$(nbr) + "... <ESC> pour arrêter ..."
until (n = nbr) or scancode = 27
show 20
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