diff --git a/README.md b/README.md index 8677043f..f46ffe8f 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp - [sphere_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral_extrude.html) ### Util -- util/angle_between +- [util/angle_between](https://openhome.cc/eGossip/OpenSCAD/lib3x-angle_between.html) - [util/bsearch](https://openhome.cc/eGossip/OpenSCAD/lib3x-bsearch.html) - [util/choose](https://openhome.cc/eGossip/OpenSCAD/lib3x-choose.html) - [util/dedup](https://openhome.cc/eGossip/OpenSCAD/lib3x-dedup.html) diff --git a/docs/lib3x-angle_between.md b/docs/lib3x-angle_between.md new file mode 100644 index 00000000..599d833b --- /dev/null +++ b/docs/lib3x-angle_between.md @@ -0,0 +1,18 @@ +# angle_between + +Returns the angle between two vectors. + +**Since:** 3.0 + +## Parameters + +- `vt1` : vector 1. +- `vt2` : vector 2. + +## Examples + + use ; + + assert(angle_between([0, 1], [1, 0]) == 90); + assert(angle_between([0, 1, 0], [1, 0, 0]) == 90); + assert(round(angle_between([1, 1, 0], [1, 1, sqrt(2)])) == 45); \ No newline at end of file diff --git a/src/util/angle_between.scad b/src/util/angle_between.scad index c08d6cf7..011d996c 100644 --- a/src/util/angle_between.scad +++ b/src/util/angle_between.scad @@ -1 +1,11 @@ +/** +* angle_between.scad +* +* @copyright Justin Lin, 2020 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib3x-angle_between.html +* +**/ + function angle_between(vt1, vt2) = acos((vt1 * vt2) / (norm(vt1) * norm(vt2))); \ No newline at end of file