This tool was inspired from the graphics of Geometry Wars
Enemy ships in the game are based off graphics primitives and are a very simplistic design which adds to the charm of the game.
What it does
Morphan is a vector graphics sprite animator, users are able to draw sprites using various graphics primitives (lines, rectangles, circles, ellipses, arcs, polygons, and bezier curves) and specify keyframes. Users can then edit the keyframes ever so slightly by adjusting the control points of each primitive. The tool also has a player that shows up what the animation will look like. The player interpolates between the keyframes to animate your sprite.
How I built it
Challenges I ran into
The implementation of moving components. This required me to know the minimum bounding box for each primitive, the code for a minimum box for an arc was particularly tricky due to the way the control points for an arc are specified.
Accomplishments that I'm proud of
You can create functional units, but using the snap to point feature this allows you to connect graphics primitives together easily and modify control points which would modify that point for all of the primitives that share that point.
The save data for a morphan uses Google's protocol buffers library so a reader can be easily made by using the protoc binary to generate the deserializer.
What I learned
Some computer graphics algorithms such as finding a bounding box for various shapes with the most challenging being an arc, smooth interpolation, some trig math involved with generating regular polygons.
What's next for Morphan
Implementing undo/redo functionality, implement operations for all primitive types, clean up code.