Dot and Box
what and what for?
dot and box allows drawing dots and boxes and do simple step based animations making it easy to visualise some algorithms or your raw ideas e.g. show event flow in a distributed system.
But hey, you can use it for whatever you like!
visualise algorithms
Let's assume you want to explain how the bubble sort works. It can be done writing dot and box code like one below:
- DABL
- HTML
title: sort with bubble sort
box id: win at: [-6, 0] size: [2, 1] color: rgba(254,193,7,0.6) visible: false
dots ids: 2 1 5 3 4 at: [-3,0] radius: 20
step: '(1) select first two numbers' duration: 0.8s
win <- visible: true, win -> +[3,0]
step: '(2) swap if left bigger than right'
2 <-> 1 // swap dot 2 with 1
step: '(3) select next two numbers'
win -> +[1,0] // move window by 1 cell right
step: 'ignore if left is smaller and select next'
win -> +[1,0]
step: 'again swap if left bigger'
5 <-> 3
step: 'and again'
win -> +[1,0]
5 <-> 4
step: 'repeat from start'
win -> -[3,0]
<dot-and-box controls style="height: 300px" code="
title: sort with bubble sort
box id: win at: [-6, 0] size: [2, 1] color: rgba(254,193,7,0.6) visible: false
dots ids: 2 1 5 3 4 at: [-3,0] radius: 20
step: '(1) select first two numbers' duration: 0.8s
win <- visible: true, win -> +[3,0]
step: '(2) swap if left bigger than right'
2 <-> 1 // swap dot 2 with 1
step: '(3) select next two numbers'
win -> +[1,0] // move window by 1 cell right
step: 'ignore if left is smaller and select next'
win -> +[1,0]
step: 'again swap if left bigger'
5 <-> 3
step: 'and again'
win -> +[1,0]
5 <-> 4
step: 'repeat from start'
win -> -[3,0]">
</dot-and-box>
and see dot and box visualization result:
Play with control buttons, to see what happens.
Live Editor
You can play with dot and box code on the live editor page.
How it works ?
Technically dot and box is an HTML5 custom element. You can add dot-and-box tag (just like normal div tag) to your page with code attribute defining controls and animation steps. On the next page [getting started] page to see how to use it.