Advertisement
boxmein

Trig normalizer for maths

Jan 18th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * What this script does is
  3.  * by some sort of mathematic rules,
  4.  * normalizes numbers for use in trigonometry
  5.  * and pretty much gives you their values as well.
  6.  
  7. */ /*
  8.         Time stands still when you're with me
  9.         How can I make you see
  10.         your crazy antics make me want to scream
  11.         your name so loud till my throat starts to bleed
  12. */
  13. var d = { // Logging object, extremely useful & reusable
  14.     OUTPUT: 1,
  15.     ERRORS: 2,  
  16.     LOGGING: 4,
  17.  
  18.     flags: this.OUTPUT | this.ERRORS | this.LOGGING,
  19.  
  20.     // Order by importance of error: 0 lowest, X highest.
  21.     ERRTHRES: 2, // Error threshold. Lower than this is ignored.
  22.     // Order by verbosity of logging: 0 lowest, X highest.
  23.     LOGTHRES: 6, // Logging threshold. HIGHER than this ignored.
  24.  
  25.     log: function(data, level) {
  26.         if(!(this.flags & this.LOGGING) || level < this.LOGTHRES) return;
  27.         if (!level)
  28.             level = 0;
  29.         console.log("[DEBUG " + level + "]: "+ data);
  30.     },
  31.     err: function(data, level) {
  32.         if(!(this.flags & this.ERRORS) || level > this.ERRTHRES) return;
  33.         if (!level)
  34.             level = 0;
  35.         console.log("[ERROR "+ level + "]: "+ data);
  36.     },
  37.     out: function(data) {
  38.         if(!(this.flags & this.OUTPUT)) return;
  39.         console.log("[OUTPUT]: "+ data);
  40.     }
  41. }
  42.  
  43. // angles go in degrees
  44. function normalizeTrig(angle, type) {
  45.     if("sincostan".indexOf(type) == -1)
  46.         d.err("Type is not a trig function", 3);
  47.     while (angle > 90)
  48.     {
  49.         if (angle < 180) {
  50.             angle = angle - 90;
  51.             angle = 90 - angle;
  52.             if (type == "cos" || type == "tan")
  53.                 angle = -angle;
  54.             d.log ("angle is now: " + angle, 5);
  55.             break;
  56.         }
  57.         else if(angle > 180 && angle < 270) {
  58.             angle = angle - 180;
  59.             if (type == "cos" || type == "sin")
  60.                 angle = -angle;
  61.             d.log ("angle is now: " + angle, 5);
  62.             break;
  63.         }
  64.         else if(angle > 270 && angle < 360) {
  65.             angle = angle - 270;
  66.             angle = 90 - angle;
  67.             if (type == "sin" || type == "tan")
  68.                 angle = -angle;
  69.             d.log ("angle is now: " + angle, 5);
  70.             break;
  71.         }
  72.         else if(angle > 360) {
  73.             angle -= 360;
  74.             d.log ("angle is now: " + angle, 5);
  75.         }
  76.     }
  77.     return angle;
  78.  
  79.  
  80.  
  81. }
  82. function init() {
  83.     var number, i;
  84.     console.log("Started.");
  85.     console.log("Logging flags: "+
  86.             (d.LOGGING ? "LOGGING " : "") +
  87.             (d.ERRORS ? "ERRORS " : "") +
  88.             (d.OUTPUT ? "OUTPUT " : ""));
  89.     console.log("Now doing maths.");
  90.     for (i=0;i<100;i++) {
  91.         number = Math.random() * 10000;
  92.         console.log("sin " + number + " = sin " + normalizeTrig(number, "sin"));
  93.     }
  94. }
  95.  
  96. init();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement