# FunctionGraph

## Name

FunctionGraph --  A widget for drawing a function over a range of one variable.

## Description

The FunctionGraph class is like the ActiveGraph except that instead of plotting values versus time it plots them versus some specified range on the x-axis. Also, instead of plotting one value on each step (as you would with time), FunctionGraph does a complete sampling whenever the `graph' method is called. That is, it graphs f(x) = y for all x in [minX, maxX] where x = minX + n * stepS ize.

The user specifies stuff like minX, maxX, the number of steps between minX and maxX to sample at and a method selector that is a wrapper for the equation being graphed. The method selector must be in a particular format: (BOOL) f: (double *) x : (double *) y If the method returns FALSE then that x value is skipped, otherwise it is assummed that y = f(x) and that value is plotted.

## Methods

### Phase: Creating

• - setResetFrequency: (unsigned)freq
Set the frequency at which to clear the graph element.

• - setXMin: (double)minx Max: (double)maxx StepSize: (double)size
Set the range and step size of X values at which to compute values.

• - setXMin: (double)minx Max: (double)maxx Resolution: (unsigned)steps
Set the range and resolution of X values at which to compute values.

• - setArithmeticWarn: (BOOL)state
If true, raise a warning if the function method failed to compute a value.

• - setFunctionSelector: (SEL)aSel
Set the function method.

• - setDataFeed: feed
Set the target to send the function method.

• - setElement: (id <GraphElement>)graphElement
Set the GraphElement to use for plotting.

### Phase: Using

• - (void)graph
Draw the graph with the current contents of the graph element.