SMOLNET PORTAL home about changes
ifix coordinames - 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 eb743275f407b73af41d4c5559f173e3e54d7cbd	/scm/ploot/commit/eb743275f407b73af41d4c5559f173e3e54d7cbd.gph	bitreich.org	70
1parent 543398796b10e8f93841918a617933c853efe0ff	/scm/ploot/commit/543398796b10e8f93841918a617933c853efe0ff.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Mon, 30 Apr 2018 20:39:04 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
ifix coordinames	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M Makefile                            |       2 ++	Err	bitreich.org	70
i  M ffdraw.c                            |      25 ++++++++++++++-----------	Err	bitreich.org	70
i  M ffdraw.h                            |       2 +-	Err	bitreich.org	70
i  A ffplot.c                            |       0 	Err	bitreich.org	70
i  M font_14x7.c                         |       2 +-	Err	bitreich.org	70
i  M main.c                              |     108 ++++++++++++++++++++++++++++---	Err	bitreich.org	70
i	Err	bitreich.org	70
i6 files changed, 117 insertions(+), 22 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/Makefile b/Makefile	/scm/ploot/file/Makefile.gph	bitreich.org	70
i@@ -17,3 +17,5 @@ clean:x	Err	bitreich.org	70
i         rm -f *.o ploot	Err	bitreich.org	70
i 	Err	bitreich.org	70
i x:	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+$(SRC): arg.h ffdraw.h font.h font_14x7.h	Err	bitreich.org	70
1diff --git a/ffdraw.c b/ffdraw.c	/scm/ploot/file/ffdraw.c.gph	bitreich.org	70
i@@ -11,20 +11,24 @@	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include "ffdraw.h"	Err	bitreich.org	70
i-#include "font_14x7.h"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #define WIDTH 100	Err	bitreich.org	70
i #define HEIGHT 100	Err	bitreich.org	70
i 	Err	bitreich.org	70
i Color buffer[WIDTH * HEIGHT];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+/*	Err	bitreich.org	70
i+ * Convert (x,y) coordinates to (row,col) for printing into the buffer.	Err	bitreich.org	70
i+ * The buffer only contain one number, so the coordinate is a single integer:	Err	bitreich.org	70
i+ *        width * x + y.	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i void	Err	bitreich.org	70
i ffdraw_pixel(Canvas *can, Color col,	Err	bitreich.org	70
i         int x, int y)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        if (x >= can->w || y >= can->h)	Err	bitreich.org	70
i+        if (x >= can->h || y >= can->w)	Err	bitreich.org	70
i                 return;	Err	bitreich.org	70
i-        memcpy(can->b + x + (can->h - 1 - y) * can->w, col, sizeof(*can->b));	Err	bitreich.org	70
i+        memcpy(can->b + can->w * (can->h - 1 - x) + y, col, sizeof(*can->b));	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i@@ -87,12 +91,12 @@ ffdraw_char(Canvas *can, Color col, char c, Font *f,	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (c & 0x80)	Err	bitreich.org	70
i                 c = '\0';	Err	bitreich.org	70
i-        x -= f->w / 2;	Err	bitreich.org	70
i-        y -= f->h / 2;	Err	bitreich.org	70
i+        x -= f->h / 2;	Err	bitreich.org	70
i+        y -= f->w / 2;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        for (xf = 0; xf < f->w; xf++)	Err	bitreich.org	70
i-                for (yf = 0; yf < f->h; yf++)	Err	bitreich.org	70
i-                        if (f->b[(int)c][(f->h - yf - 1) * f->w + xf] > 0)	Err	bitreich.org	70
i+        for (xf = 0; xf < f->h; xf++)	Err	bitreich.org	70
i+                for (yf = 0; yf < f->w; yf++)	Err	bitreich.org	70
i+                        if (f->b[(int)c][f->w * (f->h - xf - 1) + yf] > 0)	Err	bitreich.org	70
i                                 ffdraw_pixel(can, col, x + xf, y + yf);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -103,13 +107,12 @@ void	Err	bitreich.org	70
i ffdraw_str(Canvas *can, Color col, char *s, Font *f,	Err	bitreich.org	70
i         int x, int y)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        for (; *s; x += f->w, s++)	Err	bitreich.org	70
i+        for (; *s != '\0'; y += f->w, s++)	Err	bitreich.org	70
i                 ffdraw_char(can, col, *s, f, x, y);	Err	bitreich.org	70
i-                	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i ffdraw_fill(Canvas *can, Color col)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        ffdraw_rectangle(can, col, 0, 0, can->w - 1, can->h - 1);	Err	bitreich.org	70
i+        ffdraw_rectangle(can, col, 0, 0, can->h - 1, can->w - 1);	Err	bitreich.org	70
i }	Err	bitreich.org	70
1diff --git a/ffdraw.h b/ffdraw.h	/scm/ploot/file/ffdraw.h.gph	bitreich.org	70
i@@ -12,7 +12,7 @@ typedef struct {	Err	bitreich.org	70
i typedef struct {	Err	bitreich.org	70
i         int w;                /* width */	Err	bitreich.org	70
i         int h;                /* height */	Err	bitreich.org	70
i-        char *b[255];        /* buffer */	Err	bitreich.org	70
i+        char *b[128];        /* buffer */	Err	bitreich.org	70
i } Font;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /* ffdraw.c */	Err	bitreich.org	70
1diff --git a/ffplot.c b/ffplot.c	/scm/ploot/file/ffplot.c.gph	bitreich.org	70
1diff --git a/font_14x7.c b/font_14x7.c	/scm/ploot/file/font_14x7.c.gph	bitreich.org	70
i@@ -586,7 +586,7 @@ C(A) = {	Err	bitreich.org	70
i         _,_,_,_,_,_,_,	Err	bitreich.org	70
i         _,_,_,_,_,_,_,	Err	bitreich.org	70
i         _,_,_,X,_,_,_,	Err	bitreich.org	70
i-        _,_,X,_,X,_,_,	Err	bitreich.org	70
i+        _,_,_,X,_,_,_,	Err	bitreich.org	70
i         _,_,X,_,X,_,_,	Err	bitreich.org	70
i         _,_,X,_,X,_,_,	Err	bitreich.org	70
i         _,X,_,_,_,X,_,	Err	bitreich.org	70
1diff --git a/main.c b/main.c	/scm/ploot/file/main.c.gph	bitreich.org	70
i@@ -2,14 +2,101 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i+#include <time.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include "ffdraw.h"	Err	bitreich.org	70
i #include "font_14x7.h"	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-#define WIDTH 500	Err	bitreich.org	70
i-#define HEIGHT 100	Err	bitreich.org	70
i+/* as you see, no css skills needed */	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-Color buffer[WIDTH * HEIGHT];	Err	bitreich.org	70
i+#define MARGIN 5	Err	bitreich.org	70
i+#define FONT_H 14	Err	bitreich.org	70
i+#define FONT_W 7	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/* height */	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define TITLE_H (MARGIN + FONT_H + MARGIN)	Err	bitreich.org	70
i+#define PLOT_H 100	Err	bitreich.org	70
i+#define XLABEL_H (MARGIN + FONT_H + MARGIN)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define IMAGE_H (TITLE_H + PLOT_H + XLABEL_H)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define TITLE_B (0)	Err	bitreich.org	70
i+#define TITLE_E (TITLE_H)	Err	bitreich.org	70
i+#define PLOT_X_B (TITLE_H)	Err	bitreich.org	70
i+#define PLOT_X_E (IMAGE_H - XLABEL_H)	Err	bitreich.org	70
i+#define XLABEL_B (IMAGE_H - XLABEL_H)	Err	bitreich.org	70
i+#define XLABEL_E (IMAGE_H)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/* width */	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define YLABEL_W (MARGIN + 50 + MARGIN)	Err	bitreich.org	70
i+#define PLOT_W 500	Err	bitreich.org	70
i+#define LEGEND_W (MARGIN + 70 + MARGIN)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define IMAGE_W (YLABEL_W + PLOT_W + LEGEND_W)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define YLABEL_B (0)	Err	bitreich.org	70
i+#define YLABEL_E (YLABEL_W)	Err	bitreich.org	70
i+#define PLOT_Y_B (YLABEL_W)	Err	bitreich.org	70
i+#define PLOT_Y_E (IMAGE_W - LEGEND_W)	Err	bitreich.org	70
i+#define LEGEND_B (IMAGE_W - LEGEND_W)	Err	bitreich.org	70
i+#define LEGEND_E (IMAGE_W)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#define MID(x, y) ((x - y) / 2)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+Color buffer[IMAGE_W * IMAGE_H];	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+Color c_axis = { 0xffff, 0xffff, 0xffff, 0xfff };	Err	bitreich.org	70
i+Font *font = &font_14x7;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffplot_xaxis(Canvas *can, Color col, time_t tmax, time_t tstep)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        time_t t;	Err	bitreich.org	70
i+        int x, y, ystep, width;	Err	bitreich.org	70
i+        char str[sizeof("YYYY/MM/DD")], *fmt;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (tstep < 3600) {	Err	bitreich.org	70
i+                fmt = "%H:%M:%S";	Err	bitreich.org	70
i+                width = sizeof("HH:MM:SS");	Err	bitreich.org	70
i+        } else {	Err	bitreich.org	70
i+                fmt = "%Y/%m/%d";	Err	bitreich.org	70
i+                width = sizeof("YYYY/MM/DD");	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        ystep = MARGIN + FONT_W * width + MARGIN;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        t = tmax % tstep;	Err	bitreich.org	70
i+        x = XLABEL_B + FONT_H / 2;	Err	bitreich.org	70
i+        y = PLOT_Y_B + PLOT_W % ystep - width / 2;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        while (y > PLOT_Y_B) {	Err	bitreich.org	70
i+                strftime(str, sizeof(str), fmt, localtime(&t));	Err	bitreich.org	70
i+                ffdraw_str(can, col, str, font, x, y);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+                y -= ystep;	Err	bitreich.org	70
i+                t -= tstep;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffplot_(Canvas *can)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        (void)can;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffplot_graph(Canvas *can)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        (void)can;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+ffplot_legend(Canvas *can)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        (void)can;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i ffdraw(Canvas *can)	Err	bitreich.org	70
i@@ -18,8 +105,11 @@ ffdraw(Canvas *can)	Err	bitreich.org	70
i         Color col2 = { 0x3333, 0xffff, 0x8888, 0xffff };	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         ffdraw_fill(can, col1);	Err	bitreich.org	70
i+        ffplot_xaxis(can, col2, 3600 * 24 * 30, 360);	Err	bitreich.org	70
i+/*	Err	bitreich.org	70
i         ffdraw_line(can, col2, 49,1,9,79);	Err	bitreich.org	70
i-        ffdraw_str(can, col2, "R\\S`T'UaVbWcYdZe\nfghb\tjoi\rklmnopqrstuvwxyz{|}", &font_14x7, 44, 50);	Err	bitreich.org	70
i+        ffdraw_str(can, col2, "R\\S`T'UaVbWcYdZe\nfghb\tjoi\rklmnopqrstuvwxyz{|}", font, 44, 10);	Err	bitreich.org	70
i+*/	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i@@ -29,14 +119,14 @@ main(void)	Err	bitreich.org	70
i         Canvas can;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         can.b = buffer;	Err	bitreich.org	70
i-        can.w = WIDTH;	Err	bitreich.org	70
i-        can.h = HEIGHT;	Err	bitreich.org	70
i-        w = htonl(WIDTH);	Err	bitreich.org	70
i-        h = htonl(HEIGHT);	Err	bitreich.org	70
i+        can.w = IMAGE_W;	Err	bitreich.org	70
i+        can.h = IMAGE_H;	Err	bitreich.org	70
i+        w = htonl(IMAGE_W);	Err	bitreich.org	70
i+        h = htonl(IMAGE_H);	Err	bitreich.org	70
i         fputs("farbfeld", stdout);	Err	bitreich.org	70
i         fwrite(&w, sizeof(w), 1, stdout);	Err	bitreich.org	70
i         fwrite(&h, sizeof(h), 1, stdout);	Err	bitreich.org	70
i         ffdraw(&can);	Err	bitreich.org	70
i-        fwrite(can.b, WIDTH * HEIGHT, sizeof(*can.b), stdout);	Err	bitreich.org	70
i+        fwrite(can.b, IMAGE_W * IMAGE_H, sizeof(*can.b), stdout);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ploot/commit/eb743275f407b73a...
Content-Typetext/plain; charset=utf-8