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