41 lines
975 B
Scheme
41 lines
975 B
Scheme
#lang scheme
|
|
(require graphics/graphics)
|
|
|
|
(open-graphics)
|
|
(define VIEW (open-viewport "Essai Graphics" 300 100))
|
|
(define tr-segment (draw-line VIEW)) ; un traceur de segment
|
|
(define tr-pixel (draw-pixel VIEW)) ; un traceur de pixel
|
|
|
|
(define A (make-posn 150 10))
|
|
(define B (make-posn 10 90))
|
|
(define C (make-posn 290 90))
|
|
|
|
(tr-segment A B "red")
|
|
(tr-segment B C "red")
|
|
(tr-segment C A "red")
|
|
|
|
(define M-INIT (make-posn (random 300) (random 100)))
|
|
|
|
(define (jeu-du-chaos)
|
|
(define (moyenne x y)
|
|
(/ (+ x y) 2))
|
|
(define (milieu A B)
|
|
(make-posn (moyenne (posn-x A) (posn-x B))
|
|
(moyenne (posn-y A) (posn-y B))))
|
|
(define (iter nb-fois M) ; M est le dernier point courant affiche
|
|
(if (= nb-fois 0)
|
|
(void)
|
|
(let* ((S (case (random 3) ((0) A) ((1) B) ((2) C)))
|
|
(Msuiv (milieu M S)))
|
|
(tr-pixel Msuiv "blue")
|
|
(iter (- nb-fois 1) Msuiv))))
|
|
(tr-pixel M-INIT "blue")
|
|
(iter 4000 M-INIT))
|
|
|
|
(jeu-du-chaos)
|
|
|
|
|
|
|
|
|
|
|