tan.js 593 B

123456789101112131415161718192021222324252627282930
  1. var utils = require('../utils')
  2. , nodes = require('../nodes');
  3. /**
  4. * Return the tangent of the given `angle`.
  5. *
  6. * @param {Unit} angle
  7. * @return {Unit}
  8. * @api public
  9. */
  10. function tan(angle) {
  11. utils.assertType(angle, 'unit', 'angle');
  12. var radians = angle.val;
  13. if (angle.type === 'deg') {
  14. radians *= Math.PI / 180;
  15. }
  16. var m = Math.pow(10, 9);
  17. var sin = Math.round(Math.sin(radians) * m) / m
  18. , cos = Math.round(Math.cos(radians) * m) / m
  19. , tan = Math.round(m * sin / cos ) / m;
  20. return new nodes.Unit(tan, '');
  21. }
  22. tan.params = ['angle'];
  23. module.exports = tan;