Recent Changes - Search:

Home

Is the Laser up?

People

Publications

Calendar

Projects

Spring 2012

Older Courses

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007

HOWTOs

edit SideBar

SchemePaint

Dennis Lassell
Andrew Galeucia
May 13, 2009

Overview

The idea of this project is to be able to draw on the screen. There are multiple buttons to choose from as well as colors. This is all done using the mouse as well.

Screenshot

AMAZING KITTY-CAT DRAWN BY ANDREW

SMILEY FACE BY DENNIS

Concepts Demonstrated

  • Recursion: to get the different layers
  • High order calling: used in order to paint onto the canvas
  • Variable mutation: Constantly needed to set new points to draw
  • Object Orientation (class systems): had to modify classes to get mouse functions working
  • Data Structures: modified lists to perform certain actions

External Technology

The main library we used the painting library. The painting library allows for painting calls and drawings for GUIs. We also used the keyboard and mouse library. This controls the keyboard and mouse events for a particular frame.

Innovation

Being able to draw is a great feature in any language, however being able to implement many of the features can be rather difficult. This project implements a multitude of basic ideas in a complex manner showing the power of Scheme.

Technology Used Block Diagram

The canvas calls mouse events to see if an event occurs. The mouse events then calls the correct event and what occurs during it. The list of objects is then sent into a list for colors, borders and the object drawn as well. The list is then sent back to the canvas to be drawn.

Additional Remarks

Modifying the current state of an object can be done by entering in values into the additional box. Everything else is done using the mouse and correct button presses on the GUI.

So, we made paint. I hope everyone enjoys the drawing tools we have implemented and if anyone understands how (send DC-PATH% get-bounding-box) works please tell us! Once we know how it works we can implement mouse modifications.

Edit - History - Print - Recent Changes - Search
Page last modified on May 13, 2009, at 12:13 AM