move


   function doMove() {
    if(count <=50 && !paused) count+= 0.5;
    a = degToRad(angle);
    rotX = [[1,0,0,0],[0,Math.cos(a),-Math.sin(a),0],[0,Math.sin(a),Math.cos(a),0],[0,0,0,1]];
    rotY = [[Math.cos(a),0,Math.sin(a),0],[0,1,0,0],[-Math.sin(a),0,Math.cos(a),0],[0,0,0,1]];
    rotZ = [[Math.cos(a),-Math.sin(a),0,0],[Math.sin(a),Math.cos(a),0,0],[0,0,1,0],[0,0,0,1]];   
    
    for(i=1;i<=count;i++) {
     if(!paused) {
      points[i].age++;
      points[i].z += v * Math.cos(degToRad(points[i].alpha)) * Math.sin(degToRad(points[i].theta));
      points[i].x += v * Math.cos(degToRad(points[i].alpha)) * Math.cos(degToRad(points[i].theta));
      points[i].y += -0.25 * points[i].w * v * Math.sin(degToRad(points[i].alpha));
      points[i].w += points[i].decay;
     }
     
     mat = [points[i].x,points[i].y,points[i].z,1];
     mat = matrixMultiply(mat,rotY);
     plotPoint(points[i].name, new Point(mat[0],mat[1],mat[2]),points[i].age);
     
     if(points[i].y > 0) {
      points[i] = new Point(0,0,0);
      points[i].name = "divPoint" + i;
      points[i].alpha = 250; //Math.round(Math.random()*30) + 255;
      points[i].theta = Math.round(Math.random()*360);
      points[i].w = -10;
      points[i].age = 0;
      points[i].decay = 0.5; //(Math.round(Math.random()*50) + 75) / 200;
     }
    }
    window.status = angle;
    setTimeout("doMove()",20);
   }