# trigonometry-calculator

Completely solve trigonometry equations for angles and sides

## Usage no npm install needed!

``````<script type="module">
import trigonometryCalculator from 'https://cdn.skypack.dev/trigonometry-calculator';
</script>``````

# trigonometry-calculator

Completely solve trigonometry equations for angles and sides

## Installation

Run:

``````npm install trigonometry-calculator --save
``````

## Usage

1. Construct an object mapping angles and sides to their respective objects where the key is a number in the range [0, 3) and the value is the given number.
2. Pass the object to trigCalculator.
3. The function will return an object similar to the input except it will include a key-value pair containing the solution with full numerical precision.
``````import { trigCalculator } from 'trigonometry-calculator';
// ES5 / CommonJS require works in addition to ES6 import
// var calculator = require('trigonometry-calculator');
// In ES5 call calculator.trigCalculator
let unsolvedTriangle = {
angles: { 2: 117 },
sides: { 0: 6.9, 1: 2.6 }
};
console.log(trigCalculator(unsolvedTriangle));
/*
{
angles: { 0: 47.00257739237024, 1: 15.997422607629744, 2: 117 },
sides: { 0: 6.9, 1: 2.6, 2: 8.405901446641815 }
}
*/

// If there is an alternate solution due to ambiguity that will be solved as well
unsolvedTriangle = {
angles: { 1: 31 },
sides: { 1: 8, 2: 13 }
};
console.log(trigCalculator(unsolvedTriangle));
/*
{
ambiguous: {
angles: { 0: 25.818060457931665, 1: 31, 2: 123.18193954206835 },
sides: { 0: 6.764779420434399, 1: 8, 2: 13 }
},
angles: { 0: 92.18193954206835, 1: 31, 2: 56.81806045793165 },
sides: { 0: 15.521570397820525, 1: 8, 2: 13 }
}
*/
``````

## Contributing

A new function or a fixed regression should include matching test coverage. Commits should adhere to cz-conventional-changelog which can be done easily running git cz or npm run commit.