Doodle: Compositional Graphics
Copyright 2015 Underscore.
A Scala library for compositional vector graphics, with a native back-end via Swing and Java2D, and an HTML SVG backend via Scala.js.
Distributed under the Apache 2.0 license.
Using Doodle
You can use Doodle in your own project by importing the JARs published to our Bintray repository. The current release is 0.6.0
. To use it add the following to your build.sbt
:
scalaVersion := "2.11.8" // Doodle is compatible with Scala 2.11 only
resolvers += Resolver.bintrayRepo("underscoreio", "training")
libraryDependencies += "underscoreio" %% "doodle" % "0.6.0"
Alternatively you can git clone
or download Doodle and use it directly from the SBT console. See the instructions below.
Documentation
Creative Scala is currently the main documentation for Doodle. Creative Scala is a free introductory Scala ebook. Follow the link to download your copy from our web site.
Below we have a few tips to get you started.
Getting Started from SBT
-
Start SBT:
bash$ sbt > # This is the SBT prompt. Press Ctrl+D to quit to the OS.
-
Start the console:
> console scala> # This is the Scala prompt. Press Ctrl+D to quit to SBT.
-
Use Scala commands to draw a shape in a native window:
scala> (circle(10) fillColor Color.red).draw
A window should appear containing a red circle.
-
You can also save your masterpieces to a file.
scala> (circle(10) fillColor Color.red).save[Png]("masterpiece.png")
Doodle currently supports saving to PNG and PDF formats. Just alter the type parameter of
save
accordingly.
Drawing in the Browser
You can also draw Doodle pictures in the browser. The process is slightly different.
-
Write your code in
js/src/main/scala/Main.scala
-
Start SBT:
bash$ sbt > # This is the SBT prompt. Press Ctrl+D to quit to the OS.
-
Compile the JS version:
> fastOptJS
-
Open your browser and point to
http://localhost:12345/index.html
to see an SVG version of the code.
Viewing the Examples
Doodle ships with a set of examples for each of the exercises in Creative Scala.
See the shared/src/main/scala/doodle/examples
directory for a complete list.
To view an example, simply run the sbt console, and draw the examples from there. For example:
bash$ sbt console
When the console is running, type
scala> Sierpinski.image.draw
Directory Structure
Source code is in the following directories:
- shared / src / {main,test} / scala
- jvm / src / {main,test} / scala
- js / src / {main,test} / scala
SBT Commands
We provide three quick aliases for common commands:
> console runs the console using the JVM codebase
> fastOptJS compiles the JS codebase
> test runs the unit tests for both codebases
Acknowledgements
Doodle was written by Noel Welsh and Dave Gurnell with contributions from the contributors listed by Github.