RosettaCodeData/Task/Constrained-random-points-on-a-circle/Clojure/constrained-random-points-on-a-circle.clj
2015-02-20 00:35:01 -05:00

19 lines
614 B
Clojure

(ns rosettacode.circle-random-points
(:import [java.awt Color Graphics Dimension]
[javax.swing JFrame JPanel]))
(let [points (->> (for [x (range -15 16), y (range -15 16)
:when (<= 10 (Math/hypot x y) 15)]
[(+ x 15) (+ y 15)])
shuffle
(take 100))]
(doto (JFrame.)
(.add (doto (proxy [JPanel] []
(paint [^Graphics g]
(doseq [[x y] points]
(.fillRect g (* 10 x) (* 10 y) 10 10))))
(.setPreferredSize (Dimension. 310 310))))
(.setResizable false)
(.setDefaultCloseOperation JFrame/DISPOSE_ON_CLOSE)
.pack
.show))