From 51e5356f21b130aff4e6f425a683a6c4e4df7dd5 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 30 Jun 2019 18:28:01 +0800 Subject: [PATCH] add doc --- docs/images/lib2-px_line-1.JPG | Bin 0 -> 24772 bytes docs/images/lib2-px_line-2.JPG | Bin 0 -> 22425 bytes docs/lib2-px_line.md | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 docs/images/lib2-px_line-1.JPG create mode 100644 docs/images/lib2-px_line-2.JPG create mode 100644 docs/lib2-px_line.md diff --git a/docs/images/lib2-px_line-1.JPG b/docs/images/lib2-px_line-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..e7fa7f505cdf8950d798adf5b4f73c504b473674 GIT binary patch literal 24772 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 literal 0 HcmV?d00001 diff --git a/docs/lib2-px_line.md b/docs/lib2-px_line.md new file mode 100644 index 00000000..e16d1ba3 --- /dev/null +++ b/docs/lib2-px_line.md @@ -0,0 +1,33 @@ +# px_line + +Given two points. `px_line` returns points that can be used to draw a pixel-style line. + +**Since:** 2.0 + +## Parameters + +The dir changed since 2.0. + +- `p1` : The start point `[x, y]` or `[x, y, z]`. +- `p2` : The end point `[x, y]` or `[x, y, z]`. + +## Examples + + include ; + + for(pt = px_line([-10, 0], [20, 50])) { + translate(pt) + square(1, center = true); + } + +![px_line](images/lib2-px_line-1.JPG) + + include ; + + for(pt = px_line([-10, 0, -10], [20, 50, 10])) { + translate(pt) + cube(1, center = true); + } + +![px_line](images/lib2-px_line-2.JPG) +