Package edu.hws.jcm.draw

# Class Graph1D

java.lang.Object
edu.hws.jcm.draw.Drawable
edu.hws.jcm.draw.Graph1D

All Implemented Interfaces:
  `Computable`, `Serializable`

public class Graph1D extends Drawable implements Computable
A Graph1D represents the graph of a function of one variable, to be displayed in a given CoordinateRect. A Graph1D is a Computable. The data for the graph is recomputed when its compute() method is called. It will also be recomputed, before it is drawn, if the coordinate rect has changed in some way.

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class edu.hws.jcm.draw.Drawable

`canvas, coords`

## Constructor Summary

Constructors
Constructor
Description
`Graph1D()`
Create a Graph1D with no function to graph.
`Graph1D(Function func)`
Create a graph of the specified function.

## Method Summary

Modifier and Type
Method
Description
`void`
`compute()`
Recompute data for the graph and make sure that the area of the display canvas that shows the graph is redrawn.
`void`
`draw(Graphics g, boolean coordsChanged)`
Draw the graph (possibly recomputing the data if the CoordinateRect has changed).
`Color`
`getColor()`
Get the color that is used to draw the graph.
`Function`
`getFunction()`
Get the (possibly null) function whose graph is drawn.
`void`
`setColor(Color c)`
Set the color to be used for drawing the graph.
`void`
`setFunction(Function f)`
Set the function to be graphed.

### Methods inherited from class edu.hws.jcm.draw.Drawable

`getVisible, needsRedraw, setOwnerData, setVisible`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Graph1D

public Graph1D()
Create a Graph1D with no function to graph. One can be set later with setFunction();

### Graph1D

public Graph1D(Function func)
Create a graph of the specified function.

Parameters:
  `func` - The function to be graphed. If func is null, nothing is drawn. If func is non-null, it must be a function of one variable.

## Method Details

### setColor

public void setColor(Color c)
Set the color to be used for drawing the graph. The default color is magenta.

### getColor

public Color getColor()
Get the color that is used to draw the graph.

### setFunction

public void setFunction(Function f)
Set the function to be graphed. If it is null, nothing is drawn. If it is non-null, it must be a function of one variable, or an error will occur.

### getFunction

public Function getFunction()
Get the (possibly null) function whose graph is drawn.

### compute

public void compute()
Recompute data for the graph and make sure that the area of the display canvas that shows the graph is redrawn. This method is ordinarily called by a Controller.

Specified by:
  `compute` in interface `Computable`

### draw

public void draw(Graphics g, boolean coordsChanged)
Draw the graph (possibly recomputing the data if the CoordinateRect has changed). This is not usually called directly.

Specified by:
  `draw` in class `Drawable`
Parameters:
  `g` - The graphics context in which the Drawble is to be drawn. (The drawing can change the color in g, but should not permanently change font, painting mode, etc. Thus, every drawable is responsible for setting the color it wants to use.)
  `coordsChanged` - Indicates whether the CoordinateRect has changed.