[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/js/dynapi/ext/ -> functions.math.js (source)

   1  /*
   2      DynAPI Distribution
   3      dynapi.functions.Math extension    
   4      
   5      Math and Path functions
   6  */
   7  
   8  var f = dynapi.functions;
   9  f.Math = {}; // used by dynapi.library
  10  
  11  // Math Functions --------------------------
  12  
  13  f.radianToDegree = function(radian) {
  14      return radian*180/Math.PI;
  15  };
  16  f.degreeToRadian = function(degree) {
  17      return degree*Math.PI/180;
  18  };
  19  f.sintable = function(lsin) {
  20      for (var i=0; i<361; i+=1) lsin[i]=Math.sin((i/180)*Math.PI);
  21  };
  22  f.costable = function(lcos) {
  23      for (var i=0; i<361; i+=1) lcos[i]=Math.cos((i/180)*Math.PI);
  24  };
  25  f.getRandomNumber = function(n) {
  26      var t=new Date();
  27      n=(n)? n: parseInt(Math.random()*10000);
  28      return Math.round((Math.abs(Math.sin(t.getTime()))*(Math.random()*1000)))%n+1;
  29  };
  30  f.getGUID = function() { // Globally Unique ID
  31      var n1,n2,n3,n4;
  32      var l,r,m,c=Math.random()+'';
  33      c=c.substr(c.indexOf('.')+1);
  34      m=(c.length-1)/2;
  35      l=c.substr(0,m); r=c.substr(m);
  36      n1=this.getRandomNumber(1000);
  37      n2=this.getRandomNumber(255);n3=this.getRandomNumber(255);n4=this.getRandomNumber(255);
  38      n2 = (n2 < 16 ? '0' : '') + n2.toString(16);
  39      n3 = (n3 < 16 ? '0' : '') + n3.toString(16);
  40      n4 = (n4 < 16 ? '0' : '') + n4.toString(16);    
  41      return (n1+n2+'-'+l+'-'+n3+n4+'-'+r).toUpperCase();
  42  };
  43  
  44  // Path Functions ------------------------
  45  
  46  // Combines separate [x1,x2],[y1,y2] arrays into a path array [x1,y1,x2,y2]
  47  f.interlacePaths = function (x,y) {
  48      var l = Math.max(x.length,y.length);
  49      var a = new Array(l*2);
  50      for (var i=0; i<l; i++) {
  51          a[i*2] = x[i];
  52          a[i*2+1] = y[i];
  53      }
  54      return a;
  55  };
  56  
  57  // Returns correct angle in radians between 2 points
  58  f.getNormalizedAngle = function (x1,y1,x2,y2) {
  59      var distx = Math.abs(x1-x2);
  60      var disty = Math.abs(y1-y2);
  61      if (distx==0 && disty==0) angle = 0;
  62      else if (distx==0) angle = Math.PI/2;
  63      else angle = Math.atan(disty/distx);
  64      if (x1<x2) {
  65          if (y1<y2) angle = Math.PI*2-angle;
  66      }
  67      else {
  68          if (y1<y2) angle = Math.PI+angle;
  69          else angle = Math.PI-angle;
  70      }
  71      return angle;
  72  };
  73  
  74  // Generates a path between 2 points in N steps
  75  f.generateLinePath = function(x1,y1,x2,y2,N) {
  76      if (N==0) return [];
  77      var dx = (x2 == x1)? 0 : (x2 - x1)/N;
  78      var dy = (y2 == y1)? 0 : (y2 - y1)/N;
  79      var path = new Array();
  80      for (var i=0;i<=N;i++) {
  81          path[i*2] = Math.round(x1 + i*dx);
  82          path[i*2+1] = Math.round(y1 + i*dy);
  83      }
  84      return path;
  85  };


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7