Class ParametricCurve

java.lang.Object
edu.hws.jcm.draw.Drawable
edu.hws.jcm.draw.ParametricCurve
All Implemented Interfaces:
Computable, Serializable

public class ParametricCurve extends Drawable implements Computable
A ParametricCurve is defined by two functions, x(t) and y(t) of a variable, t, for t in a specified interval. The curve is simply defined as a sequence of line segments connecting points of the form (x(t),y(t)), except where one of the functions is undefined. Also, in some cases a discontinuity will be detected and no line will be drawn between two of the points.
See Also:
  • Field Summary

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

    canvas, coords
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a ParametricCurve with nothing to graph.
    Create a parametric curve with x and y coordinates given by the specified functions of the parameter t.
    ParametricCurve(Function xFunc, Function yFunc, Value tmin, Value tmax, Value intevals)
    Create a parametric curve with the specified values.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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).
    Get the color that is used to draw the graph.
    Get the value object, possibly null, that determines the number of points on the curve.
    Get the Value object, possibly null, that gives the right endpoint of the domain of the parameter.
    Get the Value object, possibly null, that gives the left endpoint of the domain of the parameter.
    Get the (possibly null) function that gives the x-coordinate of the curve.
    Get the (possibly null) function that gives the y-coordinate of the curve.
    void
    Set the color to be used for drawing the graph.
    void
    Sets the functions that gives the coordinates of the curve to be graphed.
    void
    setIntervals(Value intervalCount)
    Specify the number of subintervals into which the domain of the parametric curve is divided.
    void
    setLimits(Value tmin, Value tmax)
    Set the Value objects that specify the domain of the paratmeter.
    void
    setTMax(Value tmax)
    Set the Value object that gives the right endpoint of the domain of the parameter.
    void
    setTMin(Value tmin)
    Set the Value object that gives the left endpoint of the domain of the parameter.
    void
    Set the function that gives the x-coordinate of the curve to be graphed.
    void
    Set the function that gives the y-coordinate of the curve 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

    • ParametricCurve

      public ParametricCurve()
      Create a ParametricCurve with nothing to graph. The functions and other values can be set later.
    • ParametricCurve

      public ParametricCurve(Function xFunc, Function yFunc)
      Create a parametric curve with x and y coordinates given by the specified functions of the parameter t. Defaults values are used for tmin, tmax, and the number of intervals. If either function is null, nothing is drawn.
    • ParametricCurve

      public ParametricCurve(Function xFunc, Function yFunc, Value tmin, Value tmax, Value intevals)
      Create a parametric curve with the specified values.
      Parameters:
      xFunc - A Function of one variable giving the x-coordinate of points on the curve. If this is null, then nothing will be drawn.
      yFunc - A Function of one variable giving the y-coordinate of points on the curve. If this is null, then nothing will be drawn.
      tmin - A Value object giving one endpoint of the domain of the parameter. If this is null, the default value -5 is used.
      tmax - A Value object giving the second endpoint of the domain of the parameter. If this is null, the default value 5 is used. Note that it is not required that tmax be greater than tmin.
      intervals - A Value object giving the number of intervals into which the domain is subdivided. If this is null, the default value 200 is used. The number of points on the curve will be the number of intervals plus one (unless a function is undefined at some value of the parameter or if a discontinuity is detected). The number of intervals is clamped to the range 1 to 10000. Values outside this range would certainly be unreasonable.
  • Method Details

    • setColor

      public void setColor(Color c)
      Set the color to be used for drawing the graph.
    • getColor

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

      public void setFunctions(Function x, Function y)
      Sets the functions that gives the coordinates of the curve to be graphed. If either function is null, then nothing is drawn. If non-null, each function must be a function of one variable.
    • setXFunction

      public void setXFunction(Function x)
      Set the function that gives the x-coordinate of the curve to be graphed. If this is null, then nothing is drawn. If non-null, it must be a function of one variable.
    • setYFunction

      public void setYFunction(Function y)
      Set the function that gives the y-coordinate of the curve to be graphed. If this is null, then nothing is drawn. If non-null, it must be a function of one variable.
    • getXFunction

      public Function getXFunction()
      Get the (possibly null) function that gives the x-coordinate of the curve.
    • getYFunction

      public Function getYFunction()
      Get the (possibly null) function that gives the y-coordinate of the curve.
    • setIntervals

      public void setIntervals(Value intervalCount)
      Specify the number of subintervals into which the domain of the parametric curve is divided. The interval (tmin,tmax) is divided into subintervals. X and y coordinates of the parametric curve are computed at each endpoint of these subintervals, and then the points are connected by lines. If the parameter of this function is null, or if no interval count is ever specified, then a default value of 200 is used.
    • getIntervals

      public Value getIntervals()
      Get the value object, possibly null, that determines the number of points on the curve.
    • setLimits

      public void setLimits(Value tmin, Value tmax)
      Set the Value objects that specify the domain of the paratmeter.
    • getTMin

      public Value getTMin()
      Get the Value object, possibly null, that gives the left endpoint of the domain of the parameter.
    • getTMax

      public Value getTMax()
      Get the Value object, possibly null, that gives the right endpoint of the domain of the parameter.
    • setTMin

      public void setTMin(Value tmin)
      Set the Value object that gives the left endpoint of the domain of the parameter. If this is null, then a default value of -5 is used for the left endpoint. (Note: actually, it's not required that tmin be less than tmax, so this might really be the "right" endpoint.)
    • setTMax

      public void setTMax(Value tmax)
      Set the Value object that gives the right endpoint of the domain of the parameter. If this is null, then a default value of 5 is used for the right endpoint. (Note: actually, it's not required that tmin be less than tmax, so this might really be the "left" endpoint.)
    • 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.