tan.js 565 B

12345678910111213141516171819202122232425262728
  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. module.exports = 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. };