mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 16:26:47 +08:00
algorithm: find length of an arc and area of the sector formed by an arc of a circle (#1119)
* Add an algorithm to find length and area of an arc of a circle * Updated to follow Javascript Standard Style * Update CircularArc.js * Update CircularArc.js * Add tests * Followed Javascript standard style
This commit is contained in:

committed by
GitHub

parent
8461271fc8
commit
109e4a685b
31
Maths/CircularArc.js
Normal file
31
Maths/CircularArc.js
Normal file
@ -0,0 +1,31 @@
|
||||
import { degreeToRadian } from './DegreeToRadian.js'
|
||||
|
||||
/**
|
||||
* @function circularArcLength
|
||||
* @description calculate the length of a circular arc
|
||||
* @param {Integer} radius
|
||||
* @param {Integer} degrees
|
||||
* @returns {Integer} radius * angle_in_radians
|
||||
* @see https://en.wikipedia.org/wiki/Circular_arc
|
||||
* @example circularArcLength(3, 45) = 2.356194490192345
|
||||
*/
|
||||
function circularArcLength (radius, degrees) {
|
||||
return radius * degreeToRadian(degrees)
|
||||
}
|
||||
/**
|
||||
* @function circularArcArea
|
||||
* @description calculate the area of the sector formed by an arc
|
||||
* @param {Integer} radius
|
||||
* @param {Integer} degrees
|
||||
* @returns {Integer} 0.5 * r * r * angle_in_radians
|
||||
* @see https://en.wikipedia.org/wiki/Circular_arc
|
||||
* @example circularArcArea(3,45) = 3.5342917352885173
|
||||
*/
|
||||
function circularArcArea (radius, degrees) {
|
||||
return Math.pow(radius, 2) * degreeToRadian(degrees) / 2
|
||||
}
|
||||
|
||||
export {
|
||||
circularArcLength,
|
||||
circularArcArea
|
||||
}
|
19
Maths/test/CircularArc.test.js
Normal file
19
Maths/test/CircularArc.test.js
Normal file
@ -0,0 +1,19 @@
|
||||
import { circularArcLength, circularArcArea } from '../CircularArc'
|
||||
|
||||
describe('circularArcLength', () => {
|
||||
it('with natural number', () => {
|
||||
const arcLengthOfOneThirty = circularArcLength(1, 30)
|
||||
const arcLengthOfThreeSixty = circularArcLength(3, 60)
|
||||
expect(arcLengthOfOneThirty).toBe(0.5235987755982988)
|
||||
expect(arcLengthOfThreeSixty).toBe(3.141592653589793)
|
||||
})
|
||||
})
|
||||
|
||||
describe('circularArcArea', () => {
|
||||
it('with natural number', () => {
|
||||
const arcAreaOfOneThirty = circularArcArea(1, 30)
|
||||
const arcAreaOfThreeSixty = circularArcArea(3, 60)
|
||||
expect(arcAreaOfOneThirty).toBe(0.2617993877991494)
|
||||
expect(arcAreaOfThreeSixty).toBe(4.71238898038469)
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user