]> git.rkrishnan.org Git - sicp.git/blob - src/pictlang/core.clj
Merge branch 'master' of github.com:vu3rdd/sicp
[sicp.git] / src / pictlang / core.clj
1 (ns pictlang.core
2   (:import [javax.swing JPanel JFrame]
3            [java.awt Color Graphics Graphics2D]
4            [java.awt.image BufferedImage]))
5
6 (def dim-frame [256 256])
7
8 (def img   (BufferedImage. (dim-frame 0) (dim-frame 1) (BufferedImage/TYPE_INT_RGB)))
9 (def bg    (.getGraphics img))
10
11 (defn draw-line [v1 v2]
12   (.setPaint bg Color/RED)
13   (.drawLine bg
14              (- (dim-frame 0) (* (first v1) (dim-frame 0)))
15              (- (dim-frame 1) (* (second v1) (dim-frame 1)))
16              (- (dim-frame 0) (* (first v2) (dim-frame 0)))
17              (- (dim-frame 1) (* (second v2) (dim-frame 1)))))
18
19 (defn start-picture []
20   (let [frame (JFrame.)
21         panel (doto (proxy [JPanel] []
22                       (paint [g]
23                              (.drawImage g img 0 0 this))))]
24     (doto bg
25       (.setColor Color/BLACK)      
26       (.fillRect 0 0 (dim-frame 0) (dim-frame 1)))
27     
28     (doto frame
29       (.add panel)
30       (.setSize (dim-frame 0) (dim-frame 1))
31       (.show)
32       (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE))))
33
34 (defn show [picture frame]
35   (picture frame))
36