mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-14 10:44:48 +02:00
rewrote to use polygon
This commit is contained in:
@@ -15,18 +15,19 @@ include <__private__/__frags.scad>;
|
|||||||
module circular_sector(radius, angles) {
|
module circular_sector(radius, angles) {
|
||||||
frags = __frags(radius);
|
frags = __frags(radius);
|
||||||
|
|
||||||
r = radius / cos(180 / frags);
|
a_step = 360 / frags;
|
||||||
step = -360 / frags;
|
|
||||||
|
m = floor(angles[0] / a_step) + 1;
|
||||||
points = concat([[0, 0]],
|
n = floor(angles[1] / a_step);
|
||||||
[for(a = [angles[0] : step : angles[1] - 360])
|
|
||||||
[r * cos(a), r * sin(a)]
|
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() {
|
polygon(points);
|
||||||
circle(radius);
|
|
||||||
polygon(points);
|
|
||||||
}
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user