diff options
Diffstat (limited to 'node_modules/stylus/lib/functions/tan.js')
| -rw-r--r-- | node_modules/stylus/lib/functions/tan.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/functions/tan.js b/node_modules/stylus/lib/functions/tan.js new file mode 100644 index 00000000..311a086a --- /dev/null +++ b/node_modules/stylus/lib/functions/tan.js @@ -0,0 +1,28 @@ +var utils = require('../utils') + , nodes = require('../nodes'); + +/** + * Return the tangent of the given `angle`. + * + * @param {Unit} angle + * @return {Unit} + * @api public + */ + +module.exports = function tan(angle) { + utils.assertType(angle, 'unit', 'angle'); + + var radians = angle.val; + + if (angle.type === 'deg') { + radians *= Math.PI / 180; + } + + var m = Math.pow(10, 9); + + var sin = Math.round(Math.sin(radians) * m) / m + , cos = Math.round(Math.cos(radians) * m) / m + , tan = Math.round(m * sin / cos ) / m; + + return new nodes.Unit(tan, ''); +}; |
