From 96c1e517d6e0a3afb3c081a439b2806fe1bb9dfb Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 30 Apr 2017 16:47:23 +0800 Subject: [PATCH] added polytransversals --- README.md | 1 + docs/images/lib-polytransversals-1.JPG | Bin 0 -> 26273 bytes docs/images/lib-polytransversals-2.JPG | Bin 0 -> 22024 bytes docs/images/lib-polytransversals-3.JPG | Bin 0 -> 14524 bytes docs/lib-polytransversals.md | 42 +++++++++++++++++++++++++ src/polytransversals.scad | 1 - 6 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 docs/images/lib-polytransversals-1.JPG create mode 100644 docs/images/lib-polytransversals-2.JPG create mode 100644 docs/images/lib-polytransversals-3.JPG create mode 100644 docs/lib-polytransversals.md diff --git a/README.md b/README.md index a450cf1b..0dfd0e90 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Some modules may depend on other modules. For example, the `polyline2d` module d - [circular_sector](https://openhome.cc/eGossip/OpenSCAD/lib-circular_sector.html) - [arc](https://openhome.cc/eGossip/OpenSCAD/lib-arc.html) - [hexagons](https://openhome.cc/eGossip/OpenSCAD/lib-hexagons.html) + - [polytransversals](https://openhome.cc/eGossip/OpenSCAD/lib-polytransversals.html) - 3D - [rounded_cube](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_cube.html) diff --git a/docs/images/lib-polytransversals-1.JPG b/docs/images/lib-polytransversals-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..4d46eea828177e10453c48bcf65475b4359b0c0c GIT binary patch literal 26273 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 QkN(}j@gEM|_1^~n3vFL}K>z>% literal 0 HcmV?d00001 diff --git a/docs/images/lib-polytransversals-2.JPG b/docs/images/lib-polytransversals-2.JPG new file mode 100644 index 0000000000000000000000000000000000000000..8da7cf5760bfe64f2fa4f07addb506f68ca6f2a9 GIT binary patch literal 22024 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 literal 0 HcmV?d00001 diff --git a/docs/images/lib-polytransversals-3.JPG b/docs/images/lib-polytransversals-3.JPG new file mode 100644 index 0000000000000000000000000000000000000000..6dbf24ead13246631cdeff9150263c39d5321c36 GIT binary patch literal 14524 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 + include ; + include ; + + r = 35; + tran_pts = [[-5, 0], [0, 5], [5, 0]]; + + trans = [ + for(a = [0:10:120]) + [ + for(p = tran_pts) + rotate_p(p, [0, 0, a]) + [r * cos(a), r * sin(a)] + ] + ]; + + polytransversals(trans); + + #for(tran = trans) { + hull_polyline2d(tran, 0.5); + } + +![polytransversals](images/lib-polytransversals-3.JPG) diff --git a/src/polytransversals.scad b/src/polytransversals.scad index cf319771..8005e36e 100644 --- a/src/polytransversals.scad +++ b/src/polytransversals.scad @@ -3,7 +3,6 @@ * * Crosscutting a polyline at different points gets several transversals. * This module can operate reversely. It uses transversals to construct a polyline. -* * @copyright Justin Lin, 2017 * @license https://opensource.org/licenses/lgpl-3.0.html *