This is a simple application for beginners that shows how to create a harmonic oscillator on canvas using HTML5. We know that HTML 5 is the advanced version of HTML. Basically HTML 5 can be used to develop 3D applications. This article is intended to help with the use of HTML5 tools to create a harmonic oscillator on a canvas application. The <canvas> tag is an HTML element which can be used to draw graphics using scripting. It can be used to draw graphs to make photo compositions or do simple animations. The <canvas> element is a bitmap drawing API and once you have committed to a set of pixels you are stuck with them. Canvas is an important tag of an HTML 5 that is used to show the image and text in an HTML 5 application. I hope this article helps to create a harmonic oscillator on canvas using HTML5 tools.
 
Step 1: First open an HTML editor such as Notepad. 
     - Open start->Notepad. 
 
     - The name of the editor is "canvas".
 
 
Step 2: Create a folder on a desktop.
 
     - Right-click on desktop->new->Folder.
 
     - The name of the folder is "Tom".
 
 
Step 3: Open Visual Studio. 
 
     - Go to file -> New->Projects. 
 
     - Create an ASP. NET Web Application. 
 
     - Name of "Harmonic.aspx". 
 
 
Step 4 : Add an HTML file to your web application. 
 
     - Right-click on Solution Explorer. 
 
     - Add->add new item->HTML form. 
 
     - The Name of the HTML form is "Oscillator.html". 
 
 
Step 5 : Now in this step we set a style used to set a border and body of a canvas.
  
Code
     - <style type="text/css">  
 
     -   
 
     -        body {  
 
     -   margin: 0px;  
 
     -   padding: 0px;  
 
     - }  
 
     -   
 
     - #myCanvas {  
 
     -   border: 1px solid #00ff99;  
 
     -   background-color: Green;  
 
     - }  
 
     -   
 
     - </style>  
     
 
 
Step 6 : Now in this step we set a callback time on windows.
 
Code
     - window.requestAnimFrame = (function(callback) {  
 
     -  return window.requestAnimationFrame ||  
 
     -   window.webkitRequestAnimationFrame ||  
 
     -   window.mozRequestAnimationFrame ||  
 
     -   window.oRequestAnimationFrame ||  
 
     -   window.msRequestAnimationFrame ||  
 
     -   function(callback) {  
 
     -    window.setTimeout(callback, 1000 / 60);  
 
     -   };  
 
     - })();  
     
 
 
Step 7: Now in this step we create a function named drawWeight that is used to set all the properties of a rectangle.
 
Code 
     - function drawWeight(canvas, pxt) {  
 
     -  var size = 200;  
 
     -  pxt.save();  
 
     -  pxt.fillStyle = "red";  
 
     -  pxt.fillRect(-size / 2, 0, size, size);  
 
     -  pxt.restore();  
 
     - }  
     
 
 
Step 8: In this step, we create an onload function that is used to assign an id for the canvas.
 
Code
     - window.onload = function() {  
 
     -  var canvas = document.getElementById("myCanvas");  
 
     -  var theta = 0;  
 
     -  var d = new d();  
 
     -  var time = d.getTime();  
 
     -  animate(canvas, theta, time);  
 
     - };  
     
 
 
Step 9: The demonstration of complete application code is given below. 
 
Code
     - <html>  
 
     -    <head>  
 
     -       <title>Tom application</title>  
 
     -       <style type="text/css">  
 
     -          body  
 
     -          {  
 
     -          margin: 0px;  
 
     -          padding: 0px;  
 
     -          }  
 
     -          #myCanvas  
 
     -          {  
 
     -          border: 1px solid #00ff99;  
 
     -          background-color:Green;  
 
     -          }  
 
     -       </style>  
 
     -       window.requestAnimFrame = (function (callback)  
 
     -       {  
 
     -       return window.requestAnimationFrame ||  
 
     -       window.webkitRequestAnimationFrame ||  
 
     -       window.mozRequestAnimationFrame ||  
 
     -       window.oRequestAnimationFrame ||  
 
     -       window.msRequestAnimationFrame ||  
 
     -       function (callback) {  
 
     -       window.setTimeout(callback, 1000 / 60);  
 
     -       };  
 
     -       })();  
 
     -       function drawWeight(canvas, pxt)  
 
     -       {  
 
     -       var size = 200;  
 
     -       pxt.save();  
 
     -       pxt.fillStyle = "red";  
 
     -       pxt.fillRect(-size / 2, 0, size, size);  
 
     -       pxt.restore();  
 
     -       }  
 
     -       pxt.save();  
 
     -       pxt.translate(canvas.width / 2, 0);  
 
     -       pxt.save();  
 
     -       pxt.scale(1, scale);  
 
     -       drawSpring(canvas, pxt);  
 
     -       pxt.restore();  
 
     -       pxt.lineWidth = 6;  
 
     -       pxt.strokeStyle = "#ff0066"; // blue-ish color  
 
     -       pxt.stroke();  
 
     -       pxt.translate(0, 200 * scale);  
 
     -       drawWeight(canvas, pxt);  
 
     -       pxt.restore();  
 
     -       wndow.onload = function ()  
 
     -       {  
 
     -       var canvas = document.getElementById("myCanvas");  
 
     -       var theta = 0;  
 
     -       var d = new d();  
 
     -       var time = d.getTime();  
 
     -       animate(canvas, theta, time);  
 
     -       };  
 
     -       };  
 
     -       </script>  
 
     -    </head>  
 
     -    <body onmousedown="return false;" bgcolor="#ff99cc">  
 
     -       <canvas id="myCanvas" width="578" height="500">  
 
     -       </canvas>  
 
     -    </body>  
 
     - </html>  
     
 
 
Step 10: Press Ctrl+ F5 to run code in a browser.
 
Output
 
Resources
 
Here are some useful resources: