JSFiddle - React, Tailwind, and code Playground
HTML
<canvas id="canvas" width="800" height="600"></canvas>
<canvas id="canvasII" width="800" height="600"></canvas>
<canvas id="canvasIII" width="800" height="600"></canvas>
<canvas id="canvasIV" width="800" height="600"></canvas>
CSS
body{
margin:0px;
padding:0px;
width:100%;
height:100%;
}
canvas{
position:absolute;
left:0px;
top:0px;
margin:0px;
padding:0px;
image-rendering: optimizeSpeed;
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: optimize-contrast;
-ms-interpolation-mode: nearest-neighbor;
}
JavaScript
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000 / 60);
};
})();
var numberOfObjects = 2000;
var canvas,canvasII,canvasIII,canvasIV,canvasV;
var ctx,ctxII,ctxIII,ctxIV,ctxV;
var objects = [];
var imgToDraw;
var coords = {x:100,y:100};
var radio = 30;
for(var i = 0; i < numberOfObjects*10; i++){
objects.push({position:0});
}
function draw(){
window.requestAnimFrame(draw);
ctx.clearRect(0,0,canvas.width,canvas.height);
for(var nObject = ((numberOfObjects*1)-numberOfObjects); nObject < numberOfObjects*1; nObject++){
ctx.save();
ctx.translate(coords.x,coords.y);
ctx.rotate(objects[nObject].position/100);
ctx.translate(radio,0);
ctx.drawImage(imgToDraw,0,0);
ctx.restore();
objects[nObject].position++;
}
}
function drawII(){
window.requestAnimFrame(drawII);
ctxII.clearRect(0,0,canvas.width,canvas.height);
for(var nObject = ((numberOfObjects*2)-numberOfObjects); nObject < numberOfObjects*2; nObject++){
ctxII.save();
ctxII.translate(coords.x,coords.y);
ctxII.rotate((objects[nObject].position-40)/100);
ctxII.translate(radio,0);
ctxII.drawImage(imgToDraw,0,0);
ctxII.restore();
objects[nObject].position++;
}
}
function drawIII(){
window.requestAnimFrame(drawIII);
ctxIII.clearRect(0,0,canvas.width,canvas.height);
for(var nObject = ((numberOfObjects*3)-numberOfObjects); nObject < numberOfObjects*3;...