SMOLNET PORTAL home about changes
iplot lines thanks to dcat - ploot - simple plotting tools	Err	bitreich.org	70
hgit clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot	URL:git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot	bitreich.org	70
1Log	/scm/ploot/log.gph	bitreich.org	70
1Files	/scm/ploot/files.gph	bitreich.org	70
1Refs	/scm/ploot/refs.gph	bitreich.org	70
1Tags	/scm/ploot/tag	bitreich.org	70
1README	/scm/ploot/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/ploot/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit bb9f77683b2a4c23a519b71baaea8bec6eb5be90	/scm/ploot/commit/bb9f77683b2a4c23a519b71baaea8bec6eb5be90.gph	bitreich.org	70
1parent 6e13cd89684d0129aa13995c3f0e2ba4f0a7aae1	/scm/ploot/commit/6e13cd89684d0129aa13995c3f0e2ba4f0a7aae1.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Mon, 30 Apr 2018 14:25:31 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iplot lines thanks to dcat	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M .gitignore                          |       1 +	Err	bitreich.org	70
i  M font.c                              |      55 ++++++++++++++++++++++---------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 41 insertions(+), 15 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/.gitignore b/.gitignore	/scm/ploot/file/.gitignore.gph	bitreich.org	70
i@@ -1,2 +1,3 @@	Err	bitreich.org	70
i *.o	Err	bitreich.org	70
i+*.core	Err	bitreich.org	70
i ploot	Err	bitreich.org	70
1diff --git a/font.c b/font.c	/scm/ploot/file/font.c.gph	bitreich.org	70
i@@ -1,5 +1,9 @@	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i  * Render bitmapped font as a farbfeld image	Err	bitreich.org	70
i+ *	Err	bitreich.org	70
i+ * The convention used:                                      y	Err	bitreich.org	70
i+ * - (0,0) is at the lower left corner of the canvas.        |	Err	bitreich.org	70
i+ * - (0,1) is above it.                                      +--x	Err	bitreich.org	70
i  */	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include <arpa/inet.h>	Err	bitreich.org	70
i@@ -32,6 +36,10 @@ void	Err	bitreich.org	70
i ffdraw_pixel(Canvas *can, Color c,	Err	bitreich.org	70
i         int x, int y)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i+/* Make it segfault early.	Err	bitreich.org	70
i+        x = MIN(can->w - 1, x);	Err	bitreich.org	70
i+        y = MIN(can->h - 1, y);	Err	bitreich.org	70
i+*/	Err	bitreich.org	70
i         memcpy(can->b + x + (can->h - 1 - y) * can->w, c, sizeof(*can->b));	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -50,20 +58,37 @@ ffdraw_rectangle(Canvas *can, Color c,	Err	bitreich.org	70
i                         ffdraw_pixel(can, c, x, y);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i+/*	Err	bitreich.org	70
i+ * Adapted from Bresenham's line algorithm and dcat's tplot.	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i+static void	Err	bitreich.org	70
i ffdraw_line(Canvas *can, Color c,	Err	bitreich.org	70
i-        int x1, int y1,	Err	bitreich.org	70
i-        int x2, int y2)	Err	bitreich.org	70
i+        int x0, int y0,	Err	bitreich.org	70
i+        int x1, int y1)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        int x, y;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        (void)c;	Err	bitreich.org	70
i-        (void)can;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        x = x1;	Err	bitreich.org	70
i-        y = y1;	Err	bitreich.org	70
i-        while (x < x2 && y < y2) {	Err	bitreich.org	70
i-                x++; y++;	Err	bitreich.org	70
i+        int dx, dy, sx, sy, err, e;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        sx = x0 < x1 ? 1 : -1;	Err	bitreich.org	70
i+        sy = y0 < y1 ? 1 : -1;	Err	bitreich.org	70
i+        dx = abs(x1 - x0);	Err	bitreich.org	70
i+        dy = abs(y1 - y0);	Err	bitreich.org	70
i+        err = (dx > dy ? dx : -dy) / 2;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (;;) {	Err	bitreich.org	70
i+                ffdraw_pixel(can, c, x0, y0);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+                if (x0 == x1 && y0 == y1)	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+                e = err;	Err	bitreich.org	70
i+                if (e > -dx) {	Err	bitreich.org	70
i+                        x0 += sx;	Err	bitreich.org	70
i+                        err -= dy;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+                if (e < dy) {	Err	bitreich.org	70
i+                        y0 += sy;	Err	bitreich.org	70
i+                        err += dx;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -80,9 +105,9 @@ ffdraw(Canvas *can)	Err	bitreich.org	70
i         Color c2 = { 0x3333, 0xffff, 0x8888, 0xffff };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         ffdraw_fill(can, c1);	Err	bitreich.org	70
i-        ffdraw_rectangle(can, c2,	Err	bitreich.org	70
i-                0, 20,	Err	bitreich.org	70
i-                can->w - 10, 4);	Err	bitreich.org	70
i+        ffdraw_line(can, c2,	Err	bitreich.org	70
i+                0, 0,	Err	bitreich.org	70
i+                50 - 1, 80 - 1);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ploot/commit/bb9f77683b2a4c23...
Content-Typetext/plain; charset=utf-8