This commit is contained in:
Ian Gulliver
2016-11-08 18:39:59 -06:00
parent 75d15d5364
commit 6241d885ed

View File

@@ -1,4 +1,4 @@
fDraw(fSphere(10)); fDraw(fCylinder(10, r1=5, r2=2));
///// Drawing modules ///// Drawing modules
module fDraw(model) { module fDraw(model) {
@@ -45,17 +45,19 @@ function fCube(dims) = (
] ]
); );
function fCylinder(h, r, sides=36) = ( function fCylinder(h, r, r1=undef, r2=undef, sides=36) = (
let(degrees_per_side = 360 / sides, let(degrees_per_side = 360 / sides,
side_range = [0 : sides - 1]) side_range = [0 : sides - 1],
int_r1 = (r1 == undef) ? r : r1,
int_r2 = (r2 == undef) ? r : r2)
[ [
[fKeyPoints, [fKeyPoints,
fCartesianProduct([
[for (side = side_range) [for (side = side_range)
let (angle = side * degrees_per_side) for (params = [[int_r1, 0], [int_r2, h]])
[r * sin(angle), r * cos(angle)]], let (angle = side * degrees_per_side,
[0, h], radius = params[0],
]), height = params[1])
[radius * sin(angle), radius * cos(angle), height]],
], ],
[fKeyFaces, concat( [fKeyFaces, concat(
// bottom // bottom