Jason's Drawing App

by Jason Wang

24 Feb 2016

Before Midnight:

Version After Midnight:

(Created Example Mode)

While I stated in my midsemeter reflection that I needed to have better foresight, it seems that I still had some issues envisioning the scale of this project. I was able to meet the major parts of this project, but I am in no way 100% satisfied with this result.

From my last milestone:

  • No printed text in final product.
  • Select drawing mode with clicks onto buttons.
  • Select colors with keys.
  • Display relevant information at all times.
  • Select line thickness.
  • Click button for clearing/resetting the board.
  • Uses custom modules and functions.
  • Use multiple turtles.
  • Uses Definite loops.
  • Uses screen method of some kind.
  • No errors
  • Be organized.
  • Establish a theme of some sort. (Optional)
  • Animated Transitions. (Optional)
  • Zoom in/out functionality. (Optional)

As before, the goal of this project was to create a microsoft paint-esque application where you can mainly freedraw, and post shapes at certain points. However, one of the major issues that I could not reconcile was the fact that since I had two different turtles managing the pen and the position of the shapes, they both end up being in the same place (turning it into a reverse connect-the-dots), and don’t have the functionality of a program such as Microsoft Paint. Much of the difficulty lies in how to separate the “click” and “release” functions of the mouse; however, if one were to click down, it is also the same place for the “release” function, leading to each line connecting the shapes when pressed.

I also initially attempted to have the shape icons be clickable for selection, but it still leads to an issue of reconciling the clicking mechanism. I also attempted to plan out a method of creating a system where clicking a button would be determine a different mode (drawing vs. shapes setting). However, I still was unable to figure out the logic regarding this part. As for the line thickness, I was attempting to determine a method of counting button presses so that I could use the arrow keys as a sort of “slider”, but this also did not work out in time.

Oddly enough, loops and the screen functionality did not mix; most of the cases that I tried resulted in Trinket freezing (implying that something might have been looping forever). I decided to avoid the scenario as much as I could.

I learned a lot about myself under immense stress regarding programming, and think I handled it well considering my working time was cut in half due to traveling. However, my choice of project could have been more suited for the amount of time. I also learned that drawing/art-driven projects aren’t quite my cup of tea, and find it sort of hard to work with sometimes.

wagerpascal claims that he goes to UNC, but the time he spends at NC State suggests otherwise. Find Jason Wang on Twitter, Github, and on the web.