En attendant R3 | |
Bertrand | 16-Aug-2007/9:40:07+2:00 |
Bonjour, Il y a peu de temps je me suis remis à REBOL, après avoir expérimenté d'autres choses ici et là ... ... fan de LOGO, je me suis amusé à adapter une "tortue graphique" à REBOL (niveau débutant, que je suis toujours). En voici un exemple, pour se distraire un peu ... en attendant REBOL3 ! REBOL [] ;================================================ ; Tortue Rebol ;================================================ ;--- variables cap: -90 dernx: derny: nouvx: nouvy: 200 crayon: on couleurcrayon: white couleurfond: black ;--- fonctions de dessin style "tortue graphique" origine: does [ dernx: nouvx: 200 derny: nouvy: 200 cap: -90 ] avance: func [distance] [ nouvx: dernx + (distance * cosine cap) nouvy: derny + (distance * sine cap) if crayon [ append fen/effect/draw reduce [ 'pen couleurcrayon 'line as-pair dernx derny as-pair nouvx nouvy ] show fen ] dernx: nouvx derny: nouvy ] recule: func [distance] [avance - distance] va: func [x y] [dernx: x derny: y] droite: func [angle] [cap: cap + angle] gauche: func [angle] [cap: cap - angle] dessine: does [ append fen/effect/draw reduce [ 'pen couleurcrayon 'line as-pair dernx derny as-pair nouvx nouvy ] show fen ] ;--- programme de démonstration : ; (dessin récursif d'un arbre à l'aide des fonction définies ci-dessus) demo: does [ crayon: off recule 150 crayon: on fougere 400 ] fougere: func [taille][ if taille < 5 [exit] couleurcrayon: nuance cap avance (taille / 20) gauche 80 fougere (taille * 0,3) droite 82 avance (taille / 20) droite 80 fougere (taille * 0,3) gauche 78 fougere (taille * 0,9) gauche 2 recule (taille / 20) gauche 2 recule (taille / 20) ] nuance: function [angle][rouge vert][ rouge: to-integer 220 * (1 + cosine (120 + angle)) vert: to-integer 220 * (1 + cosine (240 + angle)) to-tuple reduce [rouge vert 0] ] ;--- création de la fenêtre pour la tortue fenetre: layout [ fen: box 400x400 couleurfond effect [draw []] do [demo] ; c'est plus rapide comme ça ! ;btn "démarrer" [demo] ; attention ! c'est trés lent !!! ] ;--- boucle principale view/title fenetre "Démonstration 'Tortue Graphique REBOL'" Tout ça peut être amélioré bien sûr | |
Bertrand | 16-Aug-2007/10:50:55+2:00 |
Précisions (pour le script précédent): - la procédure "dessine" ne sert à rien, elle est incluse dans "avance" - si on dé-commente la ligne btn "démarrer" [demo] (il faut alors commenter la ligne précédente), on peut lancer le programme en appuyant sur le bouton "démarrer", mais c'est ... trés lent ! Je n'ai pas trouvé de solutions intermédiaires. Peut-être en envoyant à 'draw' des instructions 'line' par petits blocs ? Je ne suis pas (encore) un 'Reboleur' confirmé | |
ZeBrain | 17-Aug-2007/18:20:28+2:00 |
C'est un bon début pour in interpréeur logo en Rebol tt ça | |
Login required to Post. |