diff --git a/README.md b/README.md index 242361a8..5118bed9 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ See [examples](examples). - Point Transformation (2.3 Preview) - [ptf/ptf_rotate](https://openhome.cc/eGossip/OpenSCAD/lib2x-ptf_rotate.html) - [ptf/ptf_x_twist](https://openhome.cc/eGossip/OpenSCAD/lib2x-ptf_x_twist.html) - - ptf/ptf_y_twist + - [ptf/ptf_y_twist](https://openhome.cc/eGossip/OpenSCAD/lib2x-ptf_y_twist.html) - ptf/ptf_circle - ptf/ptf_bend - ptf/ptf_ring diff --git a/docs/images/lib2x-ptf_y_twist-1.JPG b/docs/images/lib2x-ptf_y_twist-1.JPG new file mode 100644 index 00000000..aad7a0a4 Binary files /dev/null and b/docs/images/lib2x-ptf_y_twist-1.JPG differ diff --git a/docs/images/lib2x-ptf_y_twist-2.JPG b/docs/images/lib2x-ptf_y_twist-2.JPG new file mode 100644 index 00000000..f0324b2c Binary files /dev/null and b/docs/images/lib2x-ptf_y_twist-2.JPG differ diff --git a/docs/lib2x-ptf_y_twist.md b/docs/lib2x-ptf_y_twist.md new file mode 100644 index 00000000..525e4b0b --- /dev/null +++ b/docs/lib2x-ptf_y_twist.md @@ -0,0 +1,42 @@ +# ptf_y_twist + +Twist a point along the y-axis. You can use it to create something such as a [twisted maze](https://github.com/JustinSDK/dotSCAD/blob/master/examples/maze/twisted_maze.scad). + +![ptf_y_twist](images/lib2x-ptf_y_twist-2.JPG) + +**Since:** 2.3. + +## Parameters + +- `size` : 2 value array `[x, y]`, rectangle with dimensions `x` and `y`. +- `point` : The point to be twisted. +- `angle` : The number of degrees. + +## Examples + + use ; + use ; + + size = [10, 20]; + + rows = [ + for(y = [0:size[1]]) + [for(x = [0:size[0]]) [x, y]] + ]; + + columns = [ + for(x = [0:size[0]]) + [for(y = [0:size[1]]) [x, y]] + ]; + + for(line = rows) { + twisted = [for(p = line) ptf_y_twist(size, p, 90)]; + hull_polyline3d(twisted, thickness = .1); + } + + for(line = columns) { + twisted = [for(p = line) ptf_y_twist(size, p, 90)]; + hull_polyline3d(twisted, thickness = .1); + } + +![ptf_y_twist](images/lib2x-ptf_y_twist-1.JPG) diff --git a/src/ptf/ptf_y_twist.scad b/src/ptf/ptf_y_twist.scad index d7ade177..b5b63db5 100644 --- a/src/ptf/ptf_y_twist.scad +++ b/src/ptf/ptf_y_twist.scad @@ -1,10 +1,15 @@ +/** +* ptf_y_twist.scad +* +* @copyright Justin Lin, 2020 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-ptf_y_twist.html +* +**/ + use ; -/* - size: The size of a rectangle. - point: A point in the rectangle. - angle: twisted angle. -*/ function ptf_y_twist(size, point, angle) = let( xlen = size[0],