Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 1.74 KB

README.md

File metadata and controls

67 lines (54 loc) · 1.74 KB

clojure-intro-class

clojure-first-class-objects is a pilot project to use Clojure for introductory computer science courses at the University of Minnesota - Morris

This repository contains both error-related tools, versions of core functions with preconditions, and a string library for beginners.

This project abstracts over Quil's fun-mode to add more Racket style functionality.

Some added examples of functionality

Drawing some Lime rectangles next to each other

  • Quil's fun-mode:
(let [x 100
      y 100
      width 50
      height 50
  		numb 6
  		tot-w (* numb width)]
	  (q/fill 80 255 80)
	  (map (q/rect (+ (- x (/ (tot-w) 2)) (* (/ width 2) %)) y width height) (+ 1 (range numb)))
	  (q/no-fill)
  • Our super-fun-mode:
(def lime-rect (create-rect 50 50 :lime))
(def lime-rects (beside lime-rect
                        lime-rect
                        lime-rect
                        lime-rect
                        lime-rect
                        lime-rect)
(ds lime-rects 100 100)

Drawing a picture

  • Quil's fun-mode:
(image (load-image "/src/images/SquidwardsEmbarrasingPhoto.jpg") 100 100)

  • Our super-fun-mode:
(def squid-photo (create-picture "/src/images/SquidwardsEmbarrasingPhoto.jpg))
(ds squid-photo 100 100)

Scaling a picture

  • Quil's fun-mode:
 (with-translation [100 100]
                 (with-rotation (* 2 (/ q/PI 3))
                                (image (load-image "/src/images/SquidwardsEmbarrasingPhoto.jpg")
                                                   0 0)))

  • Our super-fun-mode:
(def squid-photo (rotate-shape (create-picture "/src/images/SquidwardsEmbarrasingPhoto.jpg)
                                               120))
(ds squid-photo 100 100)