FreeBSD Manual Pages
M_PLOTTER(3) Library Functions Manual M_PLOTTER(3) NAME M_Plotter -- Agar-Math plotting widget SYNOPSIS #include <agar/core.h> #include <agar/gui.h> #include <agar/math/m.h> DESCRIPTION The M_Plotter widget plots one or more numerical datasets. The widget is suitable for plotting data in real-time (fetching the data from dif- ferent types of sources), but it can also plot existing datasets all at once. Extra annotations (labels) can be associated with the individual plots. The data displayed by M_Plotter can be retrieved from different types of sources. Currently implemented sources include: M_PLOT_MANUALLY He data will be entered explicitely via calls to M_PlotReal() (see PLOTTING sec- tion). This is the default plot type set by M_PlotNew(). M_PLOT_FROM_VARIABLE_VFS Fetch the value of the given object vari- able/property. See AG_Object(3), AG_Variable(3). M_PLOT_FROM_REAL Fetch value by dereferencing a pointer to an M_Real. M_PLOT_FROM_INT Fetch value by dereferencing a pointer to an int. M_PLOT_FROM_COMPONENT Fetch value from entry i, j of a M_Matrix 3. M_PLOT_DERIVATIVE Compute as the derivative of another M_Plot. INHERITANCE HIERARCHY AG_Object(3) -> AG_Widget(3) -> M_Plotter. INITIALIZATION M_Plotter * M_PlotterNew(void *parent, Uint flags) void M_PlotterSizeHint(M_Plotter *ptr, Uint w, Uint h) void M_PlotterSetDefaultFont(M_Plotter *ptr, const char *face, int size) void M_PlotterSetDefaultColor(M_Plotter *ptr, int colorIdx, Uint8 r, Uint8 g, Uint8 b) void M_PlotterSetDefaultScale(M_Plotter *ptr, M_Real xScale, M_Real yScale) The M_PlotterNew() function allocates, initializes, and attaches a new M_Plotter widget. Acceptable flags include: M_PLOTTER_HFILL Expand horizontally in parent container. M_PLOTTER_VFILL Expand vertically in parent container. M_PLOTTER_EXPAND Shorthand for M_PLOTTER_HFILL | M_PLOTTER_VFILL. M_PlotterSizeHint() sets an initial preferred widget size in pixels. M_PlotterSetDefaultFont() configures a default font face for use with plotter labels (see "PLOT LABELS" section). M_PlotterSetDefaultColor() sets entry colorIdx in the palette of de- fault plot colors. Newly created plots are assigned an initial plot color from this palette in a round-robin fashion. Valid indices are 0 up to M_PLOTTER_NDEFCOLORS-1. M_PlotterSetDefaultScale() sets the default X and Y scaling factor that will be assigned to newly created plots. PLOTTING M_Plot * M_PlotNew(M_Plotter *ptr, enum m_plot_type type) M_Plot * M_PlotFromReal(M_Plotter *ptr, enum m_plot_type type, const char *label, M_Real *variable) M_Plot * M_PlotFromInt(M_Plotter *ptr, enum m_plot_type type, const char *label, int *variable) M_Plot * M_PlotFromDerivative(M_Plotter *ptr, enum m_plot_type type, M_Plot *plot) M_Plot * M_PlotFromVariableVFS(M_Plotter *ptr, enum m_plot_type type, const char *label, void *vfsRoot, const char *varName) void M_PlotClear(M_Plot *pl) struct ag_window * M_PlotSettings(M_Plot *pl) void M_PlotSetColor(M_Plot *pl, Uint8 r, Uint8 g, Uint8 b) void M_PlotSetScale(M_Plot *pl, M_Real xScale, M_Real yScale) void M_PlotSetXoffs(M_Plot *pl, int xOffs) void M_PlotSetYoffs(M_Plot *pl, int yOffs) void M_PlotReal(M_Plot *pl, M_Real v) void M_PlotRealv(M_Plot *pl, Uint n, const M_Real *values) void M_PlotVector(M_Plot *pl, const M_Vector *v) void M_PlotVectorv(M_Plot *pl, Uint n, const M_Vector **values) void M_PlotterUpdate(M_Plot *pl) M_PlotNew() creates a new plot with no label and a source type of M_PLOT_MANUALLY (see "DESCRIPTION"). The type, argument can take on the values: enum m_plot_type { M_PLOT_POINTS, /* Individual points */ M_PLOT_LINEAR, /* Linear interpolation */ M_PLOT_CUBIC_SPLINE, /* Cubic spline interpolation */ M_PLOT_VECTORS /* Vector arrows/cones */ }; The M_PlotFromReal() and M_PlotFromInt() variants create a plot which will be generated by dereferencing the value of an integer or real variable. The plot is assigned a specified label string by default. M_PlotFromDerivative() creates a plot which will be computed as the de- rivative of plot. Nothing prevents plot from being a derivative plot itself. M_PlotFromVariableVFS() creates a plot that will be generated by read- ing the value of a numerical AG_Object(3) variable. The object itself must be located under vfsRoot, and the varName string can take on the form "<object-name>:<variable-name>". See AG_Variable(3) for details. M_PlotClear() erases the existing contents of a plot. M_PlotSettings() constructs and displays a dialog which allows the user to change plot parameters (style, color, etc.), as well as to display the plot data in tabular format. M_PlotSetColor() configures an alternate color for plot pl in RGB for- mat. M_PlotSetScale() configures an alternate horizontal and vertical scal- ing factor for plot pl. The functions M_PlotSetXoffs() and M_PlotSetYoffs() set specific dis- play X and Y offsets. Note that these offsets are bound to scrollbars and can be manipulated by the user. The M_PlotReal() function enters an explicit value v in plot pl. M_PlotRealv() enters data from an array values, containing n entries. M_PlotVector() enters data from an M_Vector(3). M_PlotVectorv() enters data from an array of n vectors. The M_PlotterUpdate() routine updates all plots (except those using the M_PLOT_MANUALLY source type), effectively increasing the width of the plot display. This involves the dereferencing of associated variables (and possibly the evaluation of AG_Variable(3) functions for M_PLOT_FROM_VARIABLE_VFS). If scrolling mode is set (scrolling mode can be enabled by the user panning to the right edge of the display), the display is scrolled by one increment. PLOT LABELS M_PlotLabel * M_PlotLabelNew(M_Plot *pl, enum m_plot_label_type type, Uint x, Uint y, const char *format, ...) M_PlotLabel * M_PlotLabelReplace(M_Plot *pl, enum m_plot_label_type type, Uint x, Uint y, const char *format, ...) void M_PlotLabelSetText(M_Plot *pl, enum m_plot_label_type type, Uint x, Uint y, const char *format, ...) The M_PlotLabelNew() function creates a new label, associated with plot pl, and returns a pointer to the new label object. The type argument can take on the values: M_LABEL_X Associate label with an X value. A vertical alpha- blended line will be rendered along with the label. M_LABEL_Y Associate label with an Y value. M_LABEL_FREE Label can be freely moved by the user. The M_PlotLabelReplace() variant searches for an existing label with the same text string. If such a label is found, it is replaced by the new label. M_PlotLabelSetText() changes the text string associated with the label. format is a standard format string. EVENTS The M_Plotter widget does not generate any event. STRUCTURE DATA For the M_Plotter object: int xOffs, yOffs Display offset in pixels (bound to scrollbars). M_Real xScale, yScale Horizontal and vertical scaling factors (also user-controlled). AG_Scrollbar *hbar Horizontal scrollbar object. AG_Scrollbar *vbar Vertical scrollbar object. SEE ALSO AG_Intro(3), AG_Scrollbar(3), AG_Widget(3), M_Complex(3), M_Matrix(3), M_Real(3), M_Vector(3) HISTORY The M_Plotter widget first appeared in Agar 1.3.4. Agar 1.7 December 21, 2022 M_PLOTTER(3)
NAME | SYNOPSIS | DESCRIPTION | INHERITANCE HIERARCHY | INITIALIZATION | PLOTTING | PLOT LABELS | EVENTS | STRUCTURE DATA | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=M_Plotter&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
