UNPKG

@jscad/modeling

Version:

Constructive Solid Geometry (CSG) Library for JSCAD

19 lines (16 loc) 803 B
const { TAU } = require('../maths/constants') /** * Calculate the number of segments from the given radius based on minimum length or angle. * @param {Number} radius - radius of the requested shape * @param {Number} minimumLength - minimum length of segments; length > 0 * @param {Number} minimumAngle - minimum angle (radians) between segments; 0 > angle < TAU * @returns {Number} number of segments to complete the radius * @alias module:modeling/utils.radiusToSegments */ const radiusToSegments = (radius, minimumLength, minimumAngle) => { const ss = minimumLength > 0 ? radius * TAU / minimumLength : 0 const as = minimumAngle > 0 ? TAU / minimumAngle : 0 // minimum segments is four(4) for round primitives return Math.ceil(Math.max(ss, as, 4)) } module.exports = radiusToSegments