home *** CD-ROM | disk | FTP | other *** search
/ ring.yamanashi.ac.jp/pub/pc/freem/action/ / action.zip / henkyaku1.0.exe / henkyaku / Program / Kernel / Util / Math.tonyu < prev    next >
Text File  |  2004-07-04  |  2KB  |  134 lines

  1. extends Object;
  2.  
  3. constructor Math(){
  4.   $Math=this;
  5.   
  6.   AtanAccuracy=10000;
  7.   // ïtÉ│É┌é╠É╕ôxüBæσé½é»éΩé╬æσé½éóé┘é╟É│èmé╞éóéñéφé»é┼éαé╚éóüB
  8.   // 10000é¬É╕ôx,æ¼ôxé╠ù╝ò√é┼ì┼ôKüB
  9.   // É╕ôxùDɵé╚éτ1000000,æ¼ôxùDɵé╚éτ100éáéΘéóé═1000
  10.   // 10000000éµéΦæσé½éóé╞âïü[âvé≡ö▓é»éτéΩé╚é¡é╚éΘ
  11. }
  12.  
  13. function setAtanAccuracy(a) {
  14.   AtanAccuracy=a;
  15. }
  16.  
  17. // * ÆΦÉö
  18.  
  19. function pi(){return 3.141592653589793;}
  20.  
  21.  
  22. // * ÄOèpè╓Éö
  23.  
  24. // function sin(t);
  25. // function cos(t);
  26.  
  27. function tan(t){
  28.   var a;a=cos(t);
  29.   if(a) return sin(t)/a;
  30.   return null;
  31. }
  32.  
  33. function cot(t){
  34.   var a;a=sin(t);
  35.   if(a) return cos(t)/a;
  36.   return null;
  37. }
  38.  
  39. function sec(t){
  40.   var a;a=cos(t);
  41.   if(s)return 1/a;return null;
  42. }
  43.  
  44. function csc(t){
  45.   var a;a=sin(t);
  46.   if(s)return 1/a;return null;
  47. }
  48.  
  49. function atan(x){
  50.   var a,b,aa,bb,d;
  51.   a=1/sqrt(1+x*x);b=1;
  52.   while(1){
  53.     aa=(a+b)/2;bb=sqrt(aa*b);
  54.     if(abs(aa-bb)/bb<1/AtanAccuracy)return((x/sqrt(aa*bb*(1+x*x)))*(180/pi()));
  55.     a=aa;b=bb;
  56.   }
  57. }
  58.  
  59. function asin(x){
  60.   if(x<-1||x>1) return null;
  61.   if(x==1) return 90;
  62.   if(x==-1) return -90;
  63.   return atan(x/sqrt(1-x*x));
  64. }
  65.  
  66. function acos(x){
  67.   if(x<-1||x>1) return null;
  68.   if(x==1) return 0;
  69.   if(x==-1) return 180;
  70.   return 90-atan(x/sqrt(1-x*x));
  71. }
  72.  
  73. function angle(x,y){//override
  74.   if(x>0) return atan(y/x);
  75.   if(x<0) return atan(y/x)+180;
  76.   if(y<0) return -90;
  77.   if(y>0) return 90;
  78.   return 0;
  79. }
  80.  
  81. // * î╩ôxò╧è╖
  82.  
  83. function degrees(d){
  84.   return d*180/pi();
  85. }
  86. function radians(r){
  87.   return r*pi()/180;
  88. }
  89.  
  90. // * ë±ô]
  91.  
  92. function roll(x,y,angle,cx,cy) {
  93.   x-=cx;
  94.   y-=cy;
  95.   rx=  cos(angle)*  x  -  sin(angle)* y;
  96.   ry=  sin(angle)*  x  +  cos(angle)* y;
  97.   rx+=cx;
  98.   ry+=cy;  
  99. }
  100.  
  101. // * ÉöÆlö╗ÆΦ
  102.  
  103. function sign(n){
  104.   if(n<0) return -1;
  105.   if(n>0) return 1;
  106.   return 0;
  107. }
  108.  
  109. function isOdd(n){
  110.   if(!isInt(n)) return null;
  111.   return n%2;
  112. }
  113. function isEven(n){
  114.   if(!isInt(n)) return null;
  115.   return 1-n%2;
  116. }
  117.  
  118.  
  119.  
  120. // * ùÉÉö
  121.  
  122. // iê╚Åπaûóû₧é╠É«ÉöùÉÉöé≡ö¡É╢é│é╣éΘ
  123. function randBetween(i,a){
  124.   if(a<i) return randBetween(a,i);
  125.   if(a==i) return a;
  126.   return i+rnd(a-i);
  127. }
  128.  
  129. // iê╚Åπaûóû₧é╠Ä└ÉöùÉÉöé≡ö¡É╢é│é╣éΘ
  130. function randBetweenFloat(i,a){
  131.   if(a<i) return randBetweenFloat(a,i);
  132.   if(a==i) return a;
  133.   return i+rnd()*(a-i);
  134. }