From 5f38d3fc1f197da3acd8749cb70e733fd148ca99 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Tue, 3 Mar 2020 08:50:19 +0800 Subject: [PATCH] performance improved when LINES --- src/function_grapher.scad | 42 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/src/function_grapher.scad b/src/function_grapher.scad index b84f4c45..7bd793fd 100644 --- a/src/function_grapher.scad +++ b/src/function_grapher.scad @@ -164,12 +164,48 @@ module function_grapher(points, thickness, style = "FACES", slicing = "SLASH") { module tri_to_lines(tri1, tri2) { polyline3d(concat(tri1, [tri1[0]]), thickness); - polyline3d(concat(tri2, [tri2[0]]), thickness); + + if(slicing == "SLASH") { + if(tri2[0][0] == points[0][0][0]) { + polyline3d([tri2[0], tri2[2]], thickness); + } + + if(tri2[1][1] == points[rows - 1][0][1]) { + polyline3d([tri2[1], tri2[2]], thickness); + } + } + else { + if(tri2[1][0] == points[0][columns - 1][0]) { + polyline3d([tri2[1], tri2[2]], thickness); + } + + if(tri2[2][1] == points[rows - 1][columns - 1][1]) { + polyline3d([tri2[0], tri2[2]], thickness); + } + } } module tri_to_hull_lines(tri1, tri2) { - hull_polyline3d(concat(tri1, [tri1[0]]), thickness); - hull_polyline3d(concat(tri2, [tri2[0]]), thickness); + hull_polyline3d(concat(tri1, [tri1[0]]), thickness); + + if(slicing == "SLASH") { + if(tri2[0][0] == points[0][0][0]) { + hull_polyline3d([tri2[0], tri2[2]], thickness); + } + + if(tri2[1][1] == points[rows - 1][0][1]) { + hull_polyline3d([tri2[1], tri2[2]], thickness); + } + } + else { + if(tri2[1][0] == points[0][columns - 1][0]) { + hull_polyline3d([tri2[1], tri2[2]], thickness); + } + + if(tri2[2][1] == points[rows - 1][columns - 1][1]) { + hull_polyline3d([tri2[0], tri2[2]], thickness); + } + } } module hull_pts(tri) {