JavascriptProva

martedì 24 gennaio 2012

Un orologio in JavaScript

Ho messo insieme le mie funzioni per il disegno di linee in una "libreria" chiamata "geometria.js":
function cerchio(spessore,colore,centroX,centroY,raggio){
  var angolo;
  var circonferenza="";
  var puntoX, puntoY
  traccia=function(){
    for(angolo=0;angolo<=360;angolo+=.5){
   puntoX=centroX+raggio*Math.cos(angolo*180/Math.PI)
   puntoY=centroY+raggio*Math.sin(angolo*180/Math.PI)
      circonferenza+="
" } document.body.innerHTML+=circonferenza; } traccia.call(); } function rettaPerPunti(colore,x1,y1,x2,y2){ var linea=""; var lunghezza; function traccia(){ lunghezza=Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2)); angolo=Math.atan((y2-y1)/(x2-x1)); for(var n=0;n<=lunghezza;n++){ linea+="
" } document.body.innerHTML+=linea; } traccia.call(); } function linea(nomeLinea,spessore,colore,orgX,orgY,lunghezza,angolo) { var velAng; var intervallo; var linea=""; var questo=this; this.disegna=function(){ for (var n=0;n<=lunghezza;n++){ linea+="
"; } document.body.innerHTML+=linea; } this.disegna.call(); this.step=function(){ for(var n=0;n<=lunghezza;n++){ document.getElementById(nomeLinea+n).style.left=orgX+(n*Math.cos(angolo*Math.PI/180)); document.getElementById(nomeLinea+n).style.top=orgY+(n*Math.sin(angolo*Math.PI/180)); } angolo+=velAng; } this.ruota=function(velocitaAngolare,tempo){ velAng=velocitaAngolare; setInterval(function(){questo.step()},tempo); } }


Ed ecco un "orologio", che in verità su Firefox risulta piuttosto preciso:
<script src="geometria.js"></script>
<script>

function azione(){
  var miaLinea=new linea("mia",3,"red",300,300,300,-90);
 miaLinea.ruota(6,1000);
 cerchio(3,"blue",300,300,300);
 
  
}
</script>
<body onLoad="azione()">
</body>

Ecco la pagina

Nessun commento:

Posta un commento