From a442ef68e0831f9061ba4e12d5406b543958f77b Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 7 May 2017 15:05:22 +0800 Subject: [PATCH] rewrote to use polygon --- src/circular_sector.scad | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/circular_sector.scad b/src/circular_sector.scad index e752e5de..df865abe 100644 --- a/src/circular_sector.scad +++ b/src/circular_sector.scad @@ -15,18 +15,19 @@ include <__private__/__frags.scad>; module circular_sector(radius, angles) { frags = __frags(radius); - r = radius / cos(180 / frags); - step = -360 / frags; - - points = concat([[0, 0]], - [for(a = [angles[0] : step : angles[1] - 360]) - [r * cos(a), r * sin(a)] + a_step = 360 / frags; + + m = floor(angles[0] / a_step) + 1; + n = floor(angles[1] / a_step); + + points = concat( + [[0, 0], radius * [cos(angles[0]), sin(angles[0])]], + [ + for(i = [m:n]) + radius * [cos(a_step * i), sin(a_step * i)] ], - [[r * cos(angles[1]), r * sin(angles[1])]] + [radius * [cos(angles[1]), sin(angles[1])]] ); - difference() { - circle(radius); - polygon(points); - } + polygon(points); } \ No newline at end of file