aboutsummaryrefslogtreecommitdiff
path: root/node_modules/stylus/lib/functions/tan.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/stylus/lib/functions/tan.js')
-rw-r--r--node_modules/stylus/lib/functions/tan.js28
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, '');
+};