32 lines
927 B
Racket
32 lines
927 B
Racket
#lang frtime
|
|
(require frtime/animation)
|
|
|
|
(define radius (new-cell 20))
|
|
|
|
(define pos1
|
|
(rec pos
|
|
(until (make-posn 200 200)
|
|
(inf-delay
|
|
(let ([brnch (posn+ pos
|
|
(posn* (normalize (posn- mouse-pos pos))
|
|
(- (posn-diff pos mouse-pos) (sub1 radius))))])
|
|
(if (> (posn-diff pos mouse-pos) radius)
|
|
brnch
|
|
pos))))))
|
|
|
|
(define pos2
|
|
(rec pos
|
|
(until (make-posn 100 100)
|
|
(inf-delay
|
|
(let ([brnch (posn+ pos
|
|
(posn* (normalize (posn- pos1 pos))
|
|
(- (posn-diff pos pos1) (add1 (* 2 radius)))))])
|
|
(if (< (posn-diff pos pos1) (* 2 radius))
|
|
brnch
|
|
pos))))))
|
|
|
|
(display-shapes
|
|
(list
|
|
(make-circle pos1 radius "blue")
|
|
(make-circle pos2 radius "gray")))
|