en Laboratorio

Toro rotante MLB

Para la segunda actuación del Colectivo Artístico «Mi Lana Bonita» desarrollé este experimento con Canvas 2D, gráficos SVG y transformaciones y animaciones CSS3.
El código fuente es muy sencillo:

<!DOCTYPE html>
<html lang="es">
 <head>
  <meta charset="UTF-8" />
  <title>Toro rotante</title>
  <style type="text/css">
   body {
    width: 100%;
    height: 100%;
    background-color: silver;
   }
   h1 {
    font-size: 15pt;
   }
   @-webkit-keyframes lienzo {
    from {-webkit-transform: rotateY(0deg);}
    to {-webkit-transform: rotateY(-360deg);}
   }
   #lienzo {
    background-color: transparent;
    border: 1px solid gray;
    -webkit-animation-name: lienzo;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 6s;
   }
   #lienzo:hover {
    -webkit-animation-play-state: paused;
   }
   select {
    display: block;
   }
  </style>
 </head>
 <body>
  <center>
   <h1>Experimento con canvas 2D, gráficos SVG y<br />transformaciones y animaciones CSS3</h1>
   <canvas id="lienzo" width="600" height="480"></canvas>
   <select onchange="cambia_imagen();" id="opcion">
    <option value="hierro_toro.svg">Hierro Toro</option>
    <option value="hierro_mlb.svg">Hierro MLB</option>
    <option value="hierro_milanabonita.svg">Hierro Mi Lana Bonita</option>
   </select>
  </center>
  <script>
   var canvas = document.getElementById("lienzo");
   var context = canvas.getContext("2d");
   var imagen = new Image();
   imagen.onload = function() {
    context.drawImage(imagen, 0, 0);
   }
   imagen.src = "hierro_toro.svg";
   function cambia_imagen() {
    var opcion = document.getElementById("opcion");
    context.clearRect(0, 0, canvas.width, canvas.height);
    imagen.src = opcion.value; 
   }
  </script>
 </body>
</html>

El único archivo externo es un gráfico vectorial en formato SVG que trabajé con Illustrator y luego exporté. (Luego aprenderé cómo codificar ese archivo directamente con BASE64 :))

Y aquí el experimento.