==== Cylinder ==== A three dimensional shape with two flat ends that are circular. The cylinder has the same cross-section from one end to the other, extending about the Z axis. {{ :wiki:mathisfun-cylinder.svg?nolink | Cylinder}} //[[http://www.mathsisfun.com/geometry/cylinder.html|Learn about cylinders at MathIsFun.com]]// The ''radius'' specifies the circular size about the Z axis, while the ''height'' specifies the size. Cylinders can be created at a requested ''center''. The ''segments'' specify the number of segments to create per full rotation. Defaults: * radius : 1 * height : 2 * center : [0, 0, 0] * segments : 32 const { cylinder } = require('@jscad/modeling').primitives const myshape = cylinder({radius: 5, height: 10}) const myshape = cylinder({radius: 5, height: 10, center: [5, 5, 5], segments: 64}) === Elliptical Cylinder === {{ :wiki:jscad-cylinderElliptic.png?nolink | Cylinder Elliptic}} Various cylindrical shapes can be created using the elliptical cylinder, including cylinders with changing radius (cones). Defaults: * height : 2 * startRadius : [1, 1] * endRadius : [1, 1] * center : [0, 0, 0] * segments : 32 * startAngle : 0 * endAngle : PI * 2 const { cylinderElliptic } = require('@jscad/modeling').primitives const myshape = cylinderElliptic({height: 2, startRadius: [10, 5], endRadius: [8, 3]}) === Rounded Cylinder === {{ :wiki:jscad-roundedCylinder.png?nolink | Rounded Cylinder}} Cylinders can be created with rounded ends by specifying ''roundRadius''. Defaults: * radius : 1 * height : 2 * roundRadius: 0.5 * center : [0, 0, 0] * segments : 32 const { roundedCylinder } = require('@jscad/modeling').primitives const myshape = roundedCylinder({radius: 5, height: 10, roundRadius: 0.5}) const myshape = roundedCylinder({radius: 5, height: 10, roundRadius: 0.5, center: [5, 5, 5], segments: 64})