dynalgo 1.0.0

A tiny library designed to produce animated SVG images that can illustrate graph algorithms in action.
Documentation

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="cache-control" content="no-cache, must-revalidate">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Dynalgo - dyna_from example</title>
    <style>
        html,
        body {
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
        #svg_dynalgo {
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            width: 100%;
            height: 100vh;
    }
    </style>
    <script>
        function pause(svg) {
            if (svg.animationsPaused()) {
                svg.unpauseAnimations();
            } else {
                svg.pauseAnimations();
            }
        }
    </script>
  </head>
  <body>
<svg id="svg_dynalgo" onclick="pause(this)" viewBox="-40 -40 80 80" preserveAspectRatio="xMidYMid meet">
<path id="c6" stroke-width="2" opacity="0" stroke="rgb(0,0,255)" d="M0 0 L0 0 Z" />
<g id="libc6" opacity="0">
  <text id="mc6" x="0" y="0" dx="-5" dy="-5"  fill="rgb(0,0,0)">3</text>
</g>
<path id="b5" stroke-width="2" opacity="0" stroke="rgb(0,0,255)" d="M0 0 L0 0 Z" />
<g id="libb5" opacity="0">
  <text id="mb5" x="0" y="0" dx="-5" dy="-5"  fill="rgb(0,0,0)">2</text>
</g>
<path id="a4" stroke-width="2" opacity="0" stroke="rgb(0,0,255)" d="M0 0 L0 0 Z" />
<g id="liba4" opacity="0">
  <text id="ma4" x="0" y="0" dx="-5" dy="-5"  fill="rgb(0,0,0)">1</text>
</g>
<g id="A1" opacity="0">
  <circle id="cA1" cx="0" cy="0" r="20" fill="rgb(255,255,255)" stroke="rgb(0,0,255)" stroke-width="2"></circle>
  <text id="coA1" x="0" y="0" dx="-5" dy="5" fill="rgb(0,0,0)">A</text>
</g>
<g id="B2" opacity="0">
  <circle id="cB2" cx="0" cy="0" r="20" fill="rgb(255,255,255)" stroke="rgb(0,0,255)" stroke-width="2"></circle>
  <text id="coB2" x="0" y="0" dx="-5" dy="5" fill="rgb(0,0,0)">B</text>
</g>
<g id="C3" opacity="0">
  <circle id="cC3" cx="0" cy="0" r="20" fill="rgb(255,255,255)" stroke="rgb(0,0,255)" stroke-width="2"></circle>
  <text id="coC3" x="0" y="0" dx="-5" dy="5" fill="rgb(0,0,0)">C</text>
</g>
<animate xlink:href="#c6" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#libc6" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#bic6" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#a4" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#liba4" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#bia4" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#b5" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#libb5" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#bib5" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#C3" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#A1" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate xlink:href="#B2" attributeName="opacity" from="0" to="1" dur="1000ms" begin="0ms" fill="freeze"/>
<animate attributeName="viewBox" from="-40 -40 80 80" to="-147 -154 301 308" begin="1000ms" dur="1000ms" fill="freeze" />
<animate xlink:href="#c6" begin="1000ms" fill="freeze" attributeName="d" dur="1000ms" values="M0 0 L0 0 Z;M-81 114 L-107 -114 Z" />
<animateMotion xlink:href="#libc6" begin="1000ms" dur="1000ms" fill="freeze" path="m 0 0 l -94 0" />
<animate xlink:href="#c6" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
<animate xlink:href="#a4" begin="1000ms" fill="freeze" attributeName="d" dur="1000ms" values="M0 0 L0 0 Z;M114 -23 L-81 114 Z" />
<animateMotion xlink:href="#liba4" begin="1000ms" dur="1000ms" fill="freeze" path="m 0 0 l 16 45" />
<animate xlink:href="#a4" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
<animate xlink:href="#b5" begin="1000ms" fill="freeze" attributeName="d" dur="1000ms" values="M0 0 L0 0 Z;M114 -23 L-107 -114 Z" />
<animateMotion xlink:href="#libb5" begin="1000ms" dur="1000ms" fill="freeze" path="m 0 0 l 3 -68" />
<animate xlink:href="#b5" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
<animateMotion xlink:href="#C3" begin="1000ms" dur="1000ms"
                    fill="freeze" path="m 0 0 l -107 -114" />
<animate xlink:href="#cC3" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
<animateMotion xlink:href="#A1" begin="1000ms" dur="1000ms"
                    fill="freeze" path="m 0 0 l 114 -23" />
<animate xlink:href="#cA1" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
<animateMotion xlink:href="#B2" begin="1000ms" dur="1000ms"
                    fill="freeze" path="m 0 0 l -81 114" />
<animate xlink:href="#cB2" attributeName="stroke" from="rgb(0,0,255)" to="rgb(128,139,150)" dur="1000ms" begin="1000ms" fill="freeze"/>
</svg>
  </body>
</html>