UNPKG

trigonometry-calculator

Version:

Completely solve trigonometry equations for angles and sides

59 lines (51 loc) 2.21 kB
# trigonometry-calculator [![Build Status](https://travis-ci.org/calvinmikael/trigonometry-calculator.svg?branch=master)](https://travis-ci.org/calvinmikael/trigonometry-calculator) [![Coverage Status](https://coveralls.io/repos/github/calvinmikael/trigonometry-calculator/badge.svg?branch=master)](https://coveralls.io/github/calvinmikael/trigonometry-calculator?branch=master) [![Greenkeeper badge](https://badges.greenkeeper.io/calvinmikael/trigonometry-calculator.svg)](https://greenkeeper.io/) Completely solve trigonometry equations for angles and sides ## Installation Run: ```javascript 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. ```javascript 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. ### License MIT License Copyright (c) 2017 Calvin Mikael