diff options
Diffstat (limited to 'plot/plot.h')
-rw-r--r-- | plot/plot.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/plot/plot.h b/plot/plot.h new file mode 100644 index 0000000..89bf16b --- /dev/null +++ b/plot/plot.h @@ -0,0 +1,94 @@ + +#ifndef PLOT_H + +/* + * Simple diagnostic 2d plot function + * + * Copyright 1998 - 2004 Graeme W. Gill + * All rights reserved. + * + * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :- + * see the License.txt file for licencing details. + */ + +/* Graph order is Black = Y1, Red = Y2, Green = Y3, Blue = Y4, Yellow = Y5, Purple = Y6 */ +/* Brown = Y7, Orange = Y8, Grey = Y9, White = Y10 */ + +/* A plot color */ +typedef struct { + float rgb[3]; +} plot_col; + +/* Plot up to 3 X/Y Graphs. return when the user closes the window */ +/* return 0 on success, -1 on error */ +int do_plot(double *x, double *y1, double *y2, double *y3, int n); + +/* Plot up to 3 graphs. */ +/* if dowait > 0, wait for user key */ +/* if dowait < 0, wait for no seconds */ +/* If xmax > xmin, use as x scale, else auto. */ +/* If ymax > ymin, use as y scale, else auto. */ +/* ratio is window X / Y */ +/* return 0 on success, -1 on error */ +/* If n is -ve, reverse the X axis */ +int do_plot_x(double *x, double *y1, double *y2, double *y3, int n, +int dowait, double pxmin, double pxmax, double pymin, double pymax, double ratio); + +/* Plot up to 3 graphs + crosses. Wait for key */ +/* return 0 on success, -1 on error */ +/* If n is -ve, reverse the X axis */ +int do_plot_p(double *x, double *y1, double *y2, double *y3, int n, + double *x4, double *y4, int m); + +/* Public routines */ +/* Plot up to 6 graphs */ +/* return 0 on success, -1 on error */ +/* Graph order is Black = Y1, Red = Y2, Green = Y3, Blue = Y4, Yellow = Y5, Purple = Y6 */ +int do_plot6(double *x, double *y1, double *y2, double *y3, double *y4, double *y5, double *y6, int n); + +/* Plot up to 6 graphs + optional crosses. Wait for a key */ +/* return 0 on success, -1 on error */ +/* If n is -ve, reverse the X axis */ +int do_plot6p(double *x, double *y1, double *y2, double *y3, double *y4, double *y5, double *y6, + int n, double *x7, double *y7, int m); + +/* Public routines */ +/* Plot up to 10 graphs */ +/* return 0 on success, -1 on error */ +/* Graph order is Black = Y1, Red = Y2, Green = Y3, Blue = Y4, Yellow = Y5, Purple = Y6 */ +/* Brown = Y7, Orange = Y8, Grey = Y9, White = Y10 */ +/* if dozero flag, make sure y range covers zero */ +int do_plot10(double *x, double *y1, double *y2, double *y3, double *y4, double *y5, double *y6, + double *y7, double *y8, double *y9, double *y10, + int n, int dozero); + +/* Plot up to 10 graphs + optional crosses. Wait for a key */ +/* return 0 on success, -1 on error */ +/* If n is -ve, reverse the X axis */ +int do_plot10p(double *x, double *y1, double *y2, double *y3, double *y4, double *y5, double *y6, + double *y7, double *y8, double *y9, double *y10, + int n, double *xp, double *yp, int m); + +/* Plot a bunch of vectors + points + optional colored points & notation */ +/* return 0 on success, -1 on error */ +/* Vectors are x1, y1 to x2, y2 with 'X' at x2, y3, */ +/* Colored annotated Crosss at x3, y3. */ +int do_plot_vec(double xmin, double xmax, double ymin, double ymax, + double *x1, double *y1, double *x2, double *y2, int n, + int dowait, + double *x3, double *y3, plot_col *mcols, char **mtext, int m); + +/* Plot a bunch of vectors + points + optional colored points & notation */ +/* + optional colored vectors */ +/* return 0 on success, -1 on error */ +/* Vectors are x1, y1 to x2, y2 with annotated 'X' at x2, y3, */ +/* Colored annotated Crosss at x3, y3. */ +/* Colored vector from x4, y4 to x5, y5 */ +int do_plot_vec2(double xmin, double xmax, double ymin, double ymax, + double *x1, double *y1, double *x2, double *y2, char **ntext, int n, + int dowait, + double *x3, double *y3, plot_col *mcols, char **mtext, int m, + double *x4, double *y4, double *x5, double *y5, plot_col *ocols, int o); + +#define PLOT_H +#endif /* PLOT_H */ |