I am a newbie on HTML5 and Javascript, but I need to do a visualisation using them.
Here is my domain / problem:
I need to visualise a large set of graph nodes, visually a node can be a cycle with colors and transparence.
There are two relationships: include and interact.
include
means one node include other different types of node, visually, users can see a big node with smaller nodes inside itself.
interact
simply means a line connect different nodes. The line should have arrow, label (text), and thickness.
For effects, I need animations, such as nodes are not static, but some of them should have the animation of floating around (small amount of regular floating movement around a center place); or some nodes should have the pulse effect like breathing.
User can drag some nodes, if dragging a node, all connected nodes / graph should move accordingly as they are connected.
Auto detecting collision should in place. Also, if a collision occurs, all nodes should follow some algorithms to distribute away nicely.
Here are my questions:
Which Canvas library should I use? Since I am a newbie anyway, a nice simple one which fits my needs is the best.
What algorithm should I seek for to do the floating and pulse (breathing) animations?
What algorithm should I use for dragging a node and all connected nodes follow like a snake?
What algorithm should I use for collision and distributing?
Thanks
See elastic node demo here and here, collision demo here. This page contains tons of d3js demos
For easing effects, you could look into d3 transition.
Good luck!