isetup the horizontal axis - 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 980b7ae7316438998c953a8e098d894aec001c57 /scm/ploot/commit/980b7ae7316438998c953a8e098d894aec001c57.gph bitreich.org 70 1parent eb743275f407b73af41d4c5559f173e3e54d7cbd /scm/ploot/commit/eb743275f407b73af41d4c5559f173e3e54d7cbd.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:mail@josuah.net bitreich.org 70 iDate: Mon, 30 Apr 2018 21:05:38 +0200 Err bitreich.org 70 i Err bitreich.org 70 isetup the horizontal axis Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M main.c | 64 ++++++++++++++++--------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 33 insertions(+), 31 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/ploot/file/main.c.gph bitreich.org 70 i@@ -7,12 +7,13 @@ 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-/* as you see, no css skills needed */ Err bitreich.org 70 i- 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+/* as you see, no css skills needed */ Err bitreich.org 70 i+ Err bitreich.org 70 i+#define MARGIN 2 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@@ -21,27 +22,27 @@ 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+#define TITLE_MAX (IMAGE_H) Err bitreich.org 70 i+#define TITLE_MIN (IMAGE_H - TITLE_H) Err bitreich.org 70 i+#define PLOT_X_MAX (IMAGE_H - TITLE_H) Err bitreich.org 70 i+#define PLOT_X_MIN (XLABEL_H) Err bitreich.org 70 i+#define XLABEL_MAX (XLABEL_H) Err bitreich.org 70 i+#define XLABEL_MIN (0) 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 YLABEL_W (MARGIN + 20 + 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+#define LEGEND_MAX (IMAGE_W) Err bitreich.org 70 i+#define LEGEND_MIN (IMAGE_W - LEGEND_W) Err bitreich.org 70 i+#define PLOT_Y_MAX (IMAGE_W - LEGEND_W) Err bitreich.org 70 i+#define PLOT_Y_MIN (YLABEL_W) Err bitreich.org 70 i+#define YLABEL_MAX (YLABEL_W) Err bitreich.org 70 i+#define YLABEL_MIN (0) 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@@ -51,30 +52,30 @@ 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+ffplot_xaxis(Canvas *can, Color label, Color grid, 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+ int y, ystep; 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+ fmt = " %H:%M:%S "; Err bitreich.org 70 i+ ystep = sizeof(" HH:MM:SS ") * FONT_W; 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+ fmt = " %Y/%m/%d "; Err bitreich.org 70 i+ ystep = sizeof(" YYYY/MM/DD ") * FONT_W; 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+ y = PLOT_Y_MAX + PLOT_W % ystep - ystep; Err bitreich.org 70 i Err bitreich.org 70 i- while (y > PLOT_Y_B) { Err bitreich.org 70 i+ while (y > PLOT_Y_MIN) { 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+ ffdraw_str(can, label, str, font, Err bitreich.org 70 i+ XLABEL_MIN + XLABEL_H / 2, y - ystep / 2 + FONT_W); Err bitreich.org 70 i+ ffdraw_line(can, grid, Err bitreich.org 70 i+ PLOT_X_MIN, y, Err bitreich.org 70 i+ PLOT_X_MAX, y); Err bitreich.org 70 i y -= ystep; Err bitreich.org 70 i t -= tstep; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -102,10 +103,11 @@ static void Err bitreich.org 70 i ffdraw(Canvas *can) Err bitreich.org 70 i { Err bitreich.org 70 i Color col1 = { 0x2222, 0x2222, 0x2222, 0xffff }; Err bitreich.org 70 i- Color col2 = { 0x3333, 0xffff, 0x8888, 0xffff }; Err bitreich.org 70 i+ Color label = { 0x3333, 0xffff, 0x8888, 0xffff }; Err bitreich.org 70 i+ Color grid = { 0x4444, 0x4444, 0x4444, 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+ ffplot_xaxis(can, label, grid, 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, 44, 10); Err bitreich.org 70 .