<?xml version="1.0" encoding="UTF-8" standalone="no"?><umlet_diagram><help_text>// Uncomment the following line to change the fontsize:
// fontsize=14


//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on UML elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use ± or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////


// This text will be stored with each diagram;  use it for notes.</help_text><zoom_level>10</zoom_level><element><type>com.umlet.element.base.Class</type><coordinates><x>150</x><y>360</y><w>270</w><h>120</h></coordinates><panel_attributes>PlotterFrame
bg=gray
--
 
--
main -- Constructs and makes visible
an 800 by 600 JFrame that has on it
a JComponent that displays plots
of functions</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>190</x><y>60</y><w>190</w><h>170</h></coordinates><panel_attributes>JFrame
bg=yellow
--
 
--
setSize
setTitle
setDefaultCloseOperation
 
add
 
setVisible</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>250</x><y>200</y><w>50</w><h>180</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>30;30;30;160</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>450</x><y>210</y><w>280</w><h>90</h></coordinates><panel_attributes>PlotterApplet
bg=gray
--
 
--
init -- Constructs and adds a JComponent
that constructs and draws Plot's</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>510</x><y>60</y><w>190</w><h>100</h></coordinates><panel_attributes>JApplet
bg=yellow
--
 
--
setSize
 
add
</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>570</x><y>130</y><w>50</w><h>100</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;30;30;80</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>520</x><y>380</y><w>220</w><h>70</h></coordinates><panel_attributes>PlotterComponent
bg=gray
--
 
--
paintComponent - displays Plot's</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>760</x><y>220</y><w>130</w><h>70</h></coordinates><panel_attributes>JComponent
bg=yellow
--
 
--
paintComponent</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>670</x><y>260</y><w>120</w><h>140</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>100;30;30;120</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>310</x><y>370</y><w>308</w><h>94</h></coordinates><panel_attributes>lt=&lt;-
constructs
                       and adds                           </panel_attributes><additional_attributes>210;50;110;50</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>450</x><y>270</y><w>192</w><h>130</h></coordinates><panel_attributes>lt=&lt;-
                  constructs
                  and adds</panel_attributes><additional_attributes>100;110;100;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>940</x><y>270</y><w>210</w><h>350</h></coordinates><panel_attributes>Plot
bg=gray
--
 
int centerX - x-coordinate
          of the center of the plot
int centerY - y-coordinate
          of the center of the plot
int width - width of the plot
int height - height of the plot
 
--
 
Plot(int centerX, int centerY,
        int width, int height,
        Function function)
 
drawOn(Graphics2D)
 
private helper methods:
  drawAxes(Graphics2D)
  drawCurve(Graphics2D)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Note</type><coordinates><x>310</x><y>250</y><w>130</w><h>90</h></coordinates><panel_attributes>Note..
bg=blue
Run either
as an Application
or as an Applet</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Note</type><coordinates><x>150</x><y>540</y><w>170</w><h>260</h></coordinates><panel_attributes>Note.. Students:
bg=blue
 
 -- You implement
     the gray classes.
 
 -- We supplied the
    green interfaces,
    which help specify
    your classes.
 
 -- The yellow classes
     and interfaces are
     Swing things that
     your classes use.</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>710</x><y>360</y><w>250</w><h>94</h></coordinates><panel_attributes>lt=&lt;-
constructs
and calls drawOn
m1=          1..*</panel_attributes><additional_attributes>230;50;30;50</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>930</x><y>180</y><w>50</w><h>110</h></coordinates><panel_attributes>lt=&lt;.</panel_attributes><additional_attributes>30;30;30;90</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1080</x><y>180</y><w>50</w><h>110</h></coordinates><panel_attributes>lt=&lt;.</panel_attributes><additional_attributes>30;30;30;90</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>1080</x><y>180</y><w>110</w><h>30</h></coordinates><panel_attributes>Graphics2D
bg=yellow</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>800</x><y>60</y><w>140</w><h>50</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
Shape
bg=yellow</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>880</x><y>80</y><w>50</w><h>120</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>30;30;30;100</additional_attributes></element><element><type>com.umlet.element.base.Note</type><coordinates><x>340</x><y>560</y><w>230</w><h>240</h></coordinates><panel_attributes>Key..
 
bg=pink
is-a, extends
 
is-a, implements
 
has-a
 (association)
 annotation indicates construction
 and/or multiplicity
 
uses
 (dependency)</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>410</x><y>570</y><w>140</w><h>50</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>120;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>430</x><y>610</y><w>120</w><h>50</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>100;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>410</x><y>660</y><w>140</w><h>50</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>120;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>890</x><y>180</y><w>140</w><h>30</h></coordinates><panel_attributes>Line2D.Double
bg=yellow</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>380</x><y>730</y><w>180</w><h>50</h></coordinates><panel_attributes>lt=&lt;.</panel_attributes><additional_attributes>160;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>590</x><y>520</y><w>290</w><h>280</h></coordinates><panel_attributes>CubicPolynomial
bg=gray
--
double a
double b
double c
double d
 
The above specifies the cubic polynomial
a x^3  +  b x^2  +  c x  + d
 
--
 
CubicPolynomial(double a, double b,
                           double c, double d)
 
double valueAt(double x) - Returns
  the value of the function at x</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Class</type><coordinates><x>960</x><y>680</y><w>190</w><h>100</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
Function
bg=green
--
double valueAt(double x)
 -- returns the value of
     the function at x</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>510</x><y>420</y><w>226</w><h>120</h></coordinates><panel_attributes>lt=&lt;-
m1=                             constructs 1..*</panel_attributes><additional_attributes>120;100;120;30</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1010</x><y>590</y><w>52</w><h>110</h></coordinates><panel_attributes>lt=&lt;-
m1=      1</panel_attributes><additional_attributes>30;90;30;30</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>950</x><y>60</y><w>190</w><h>100</h></coordinates><panel_attributes>&lt;&lt;interface&gt;&gt;
Drawable
bg=green
--
drawOn(Graphics2D)
 -- draws the object
    on the given Graphics2D</panel_attributes><additional_attributes/></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>1020</x><y>130</y><w>50</w><h>160</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>30;30;30;140</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>850</x><y>700</y><w>130</w><h>50</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>110;30;30;30</additional_attributes></element><element><type>com.umlet.element.base.Note</type><coordinates><x>1170</x><y>260</y><w>150</w><h>360</h></coordinates><panel_attributes> 
Note..
bg=blue
The drawOn method
should draw the axes
and the curve
assuming a
coordinate system
in which (0, 0)
is the center of
the plot area and
units are pixels.
 
Points outside of
the plotting area
should NOT be
drawn.  That is,
the plot should
clip y-values too
big or too small
to fit on the plot.</panel_attributes><additional_attributes/></element></umlet_diagram>