Created
September 10, 2016 04:21
-
-
Save chrisengelsma/1b9ff7b5e12ae5a8ff324985041e0d58 to your computer and use it in GitHub Desktop.
Basic sass math functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// If for some reason you don't / can't use Compass... | |
@function pow($number, $exp) { | |
$value: 1; | |
@if $exp > 0 { | |
@for $i from 1 through $exp { | |
$value: $value * $number; | |
} | |
} | |
@else if $exp < 0 { | |
@for $i from 1 through -$exp { | |
$value: $value / $number; | |
} | |
} | |
@return $value; | |
} | |
@function fact($number) { | |
$value: 1; | |
@if $number > 0 { | |
@for $i from 1 through $number { | |
$value: $value * $i; | |
} | |
} | |
@return $value; | |
} | |
@function pi() { | |
@return 3.14159265359; | |
} | |
@function rad($angle) { | |
$unit: unit($angle); | |
$unitless: $angle/($angle*0+1); | |
@if $unit == deg { | |
$unitless: $unitless / 180 * pi(); | |
} | |
@return $unitless; | |
} | |
@function sin($angle) { | |
$sin: 0; | |
$angle: rad($angle); | |
@for $i from 0 through 10 { | |
$sin: $sin + pow(-1,$i) * pow($angle, (2*$i+1)) / fact(2 * $i + 1); | |
} | |
@return $sin; | |
} | |
@function cos($angle) { | |
$cos: 0; | |
$angle: rad($angle); | |
@for $i from 0 through 10 { | |
$cos: $cos + pow(-1,$i) * pow($angle, 2*$i) / fact(2 * $i); | |
} | |
@return $cos; | |
} | |
@function tan($angle) { | |
@return sin($angle) / cos($angle); | |
} | |
@function sec($angle) { | |
@return 1 / sin($angle); | |
} | |
@function csc($angle) { | |
@return 1 / cos($angle); | |
} | |
@function cot($angle) { | |
@return 1 / tan($angle); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment