(require "common.scm") (define width 200) (define height 200) (let* ( (img (Gd.create_truecolor width height)) (ca (img#colors)) (bg (ca#create 255 255 255)) (dot (array (ca#create 255 255 255) (ca#create 220 41 0) (ca#create 139 115 0) (ca#create 255 165 59) )) (margin_top 20) (margin_left 40) (draw_dot (fun ((x y d)) (img#filled_rectangle (+ (* x 10) margin_left) (+ (* y 10) margin_top) (+ (* (+ x 1) 10) margin_left) (+ (* (+ y 1) 10) margin_top) (Array.get dot d) ) )) (dot_map '#( '#(0 0 0 1 1 1 1 1 0 0 0 0) '#(0 0 1 1 1 1 1 1 1 1 1 0) '#(0 0 2 2 2 3 3 2 3 0 0 0) '#(0 2 3 2 3 3 3 2 3 3 3 0) '#(0 2 3 2 2 3 3 3 2 3 3 3) '#(0 2 2 3 3 3 3 2 2 2 2 0) '#(0 0 0 3 3 3 3 3 3 3 0 0) '#(0 0 2 2 1 2 2 2 0 0 0 0) '#(0 2 2 2 1 2 2 1 2 2 2 0) '#(2 2 2 2 1 1 1 1 2 2 2 2) '#(3 3 2 1 3 1 1 3 1 2 3 3) '#(3 3 3 1 1 1 1 1 1 3 3 3) '#(3 3 1 1 1 1 1 1 1 1 3 3) '#(0 0 1 1 1 0 0 1 1 1 0 0) '#(0 2 2 2 0 0 0 0 2 2 2 0) '#(2 2 2 2 0 0 0 0 2 2 2 2) )) ) (img#filled_rectangle 0 0 (- width 1) (- height 1) bg) (List.iter draw_dot (list-ec (for y 0 ( - (Array.length dot_map) 1)) (for x 0 11) (tuple x y (Array.get (Array.get dot_map y) x))) ) (img#save_as_png "draw4.png") )