diff --git a/src/experimental/convex_offset.scad b/src/experimental/convex_offset.scad new file mode 100644 index 00000000..58d91df5 --- /dev/null +++ b/src/experimental/convex_offset.scad @@ -0,0 +1,21 @@ +use ; + +function convex_offset(vertices, d) = + let( + c = tri_incenter(vertices), + leng_vertices = len(vertices) + ) + [ + for(i = [0:leng_vertices - 1]) + let( + curr_p = vertices[i], + next_p = vertices[(i + 1) % leng_vertices], + v1 = c - curr_p, + v2 = next_p - curr_p, + leng_v1 = norm(v1), + leng_v2 = norm(v2), + a = acos((v1 * v2) / (leng_v1 * leng_v2)), + leng = -d / sin(a) + ) + v1 / leng_v1 * leng + curr_p + ]; \ No newline at end of file