JAVASCRIPT   100
html5 3d animation
Guest on 20th August 2022 12:56:12 AM


  1. (function(a){
  2.     a.fn.html5_3d_animation=function(p){
  3.         var p=p||{};
  4.  
  5.         var w_w=p&&p.window_width?p.window_width:"500";
  6.         var w_h=p&&p.window_height?p.window_height:"400";
  7.         var w_b=p&&p.window_background?p.window_background:"#000";
  8.         var s_c=p&&p.star_count?p.star_count:"600";
  9.         var s_color=p&&p.star_color?p.star_color:"#FFF";
  10.         var s_d=p&&p.star_depth?p.star_depth:"250";
  11.         var dom=a(this);
  12.         var fov = parseInt(s_d);
  13.         var SCREEN_WIDTH = parseInt(w_w);
  14.         var SCREEN_HEIGHT = parseInt(w_h);
  15.         var HALF_WIDTH = SCREEN_WIDTH/2;
  16.         var HALF_HEIGHT = SCREEN_HEIGHT/2;
  17.         var c_id = dom.attr("id");
  18.         var numPoints = s_c;
  19.         dom.attr({ width: w_w, height: w_h});
  20.         setup();
  21.         function setup()
  22.         {
  23.  
  24.  
  25.  
  26.  
  27.             function draw3Din2D(point3d)
  28.             {
  29.                 x3d = point3d[0];
  30.                 y3d = point3d[1];
  31.                 z3d = point3d[2];
  32.                 var scale = fov/(fov+z3d);
  33.                 var x2d = (x3d * scale) + HALF_WIDTH;
  34.                 var y2d = (y3d * scale)  + HALF_HEIGHT;
  35.  
  36.  
  37.                 c.lineWidth= scale;
  38.                 c.strokeStyle = s_color;
  39.                 c.beginPath();
  40.                 c.moveTo(x2d,y2d);
  41.                 c.lineTo(x2d+scale,y2d);
  42.                 c.stroke();
  43.  
  44.             }
  45.  
  46.             var canvas = document.getElementById(c_id);
  47.             var c = canvas.getContext('2d');
  48.  
  49.             var points = [];
  50.  
  51.             function initPoints()
  52.             {
  53.                 for (i=0; i<numPoints; i++)
  54.                 {
  55.                     point = [(Math.random()*400)-200, (Math.random()*400)-200 , (Math.random()*400)-200 ];
  56.                     points.push(point);
  57.                 }
  58.  
  59.             }
  60.  
  61.             function render()
  62.             {
  63.  
  64.                 c.fillStyle=w_b;
  65.                 c.fillRect(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);
  66.  
  67.                 for (i=0; i<numPoints; i++)
  68.                 {
  69.                     point3d = points[i];
  70.  
  71.                     z3d = point3d[2];
  72.                     z3d-=4;
  73.                     if(z3d<-fov) z3d +=400;
  74.                     point3d[2] = z3d;
  75.  
  76.  
  77.                     draw3Din2D(point3d);
  78.  
  79.                 }
  80.                 var show = document.getElementById('show');
  81.                 show.appendChild('p');
  82.             }
  83.  
  84.             initPoints();
  85.  
  86.             var loop = setInterval(function(){
  87.                 render();
  88.             }, 50);
  89.  
  90.         }
  91.     /*
  92.         var canvas = document.getElementById('webwidget_html5_star_backgorund');
  93.  
  94.         var c = canvas.getContext('2d');
  95.  
  96.         var points = [];
  97.         initPoints();
  98.  
  99.         var loop = setInterval(render, 50);
  100.         function draw3Din2D(point3d)
  101.         {
  102.             x3d = point3d[0];
  103.             y3d = point3d[1];
  104.             z3d = point3d[2];
  105.             var scale = parseInt(fov/(fov+z3d));
  106.             var x2d = (x3d * scale) + HALF_WIDTH;
  107.             var y2d = (y3d * scale)  + HALF_HEIGHT;
  108.  
  109.  
  110.             c.lineWidth= scale;
  111.             c.strokeStyle = s_color;
  112.             c.beginPath();
  113.             c.moveTo(x2d,y2d);
  114.             c.lineTo(x2d+scale,y2d);
  115.             c.stroke();
  116.  
  117.         }
  118.         function initPoints(){
  119.             for (i=0; i<numPoints; i++)
  120.             {
  121.                 point = [(Math.random()*400)-200, (Math.random()*400)-200 , (Math.random()*400)-200 ];
  122.                 points.push(point);
  123.             }
  124.  
  125.         }
  126.         function render()
  127.         {
  128.            
  129.             c.fillStyle=w_b;
  130.             c.fillRect(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);
  131.  
  132.             for (i=0; i<numPoints; i++)
  133.             {
  134.                 point3d = points[i];
  135.  
  136.                 z3d = point3d[2];
  137.                 z3d-=4;
  138.                 if(z3d<-fov) z3d +=400;
  139.                 point3d[2] = z3d;
  140.  
  141.  
  142.                 draw3Din2D(point3d);
  143.  
  144.             }
  145.         }*/
  146.     }
  147. })(jQuery);

Raw Paste

Login or Register to edit or fork this paste. It's free.