Difference between revisions of "DynamicImages2"

From WeBWorK_wiki
Jump to navigation Jump to search
Line 29: Line 29:
 
<pre>
 
<pre>
 
# a graph object
 
# a graph object
$gr = init_graph(-1,4,-1,4,axes=&gt;~[0,0],grid=&gt;[5,5]);
+
$gr = init_graph(-1,4,-1,4,axes=&gt;[0,0],grid=&gt;[5,5]);
 
# plot a function
 
# plot a function
 
add_functions($gr,
 
add_functions($gr,
Line 75: Line 75:
 
</tr>
 
</tr>
 
</table>
 
</table>
  +
<p>
  +
Note that there is a more complete list of the plotting options available in a graph object in the CVS documentation for [http://webwork.maa.org/doc/cvs/pg_CURRENT/lib/WWPlot.html WWPlot] and [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/PGgraphmacros.pl.html PGgraphmacros].
  +
</p>
 
<p style="text-align:center;">
 
<p style="text-align:center;">
 
[[IndexOfProblemTechniques|Problem Techniques Index]]
 
[[IndexOfProblemTechniques|Problem Techniques Index]]

Revision as of 10:11, 4 March 2008

Adding Labels, Lines and Points to Dynamic Graphs: PG Code Snippet

This code snippet shows the essential PG code to add labels, lines and points to dynamically generated graphs. Note that these are insertions, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.

Problem Techniques Index

PG problem file Explanation
  loadMacros("PGgraphmacros.pl");

We have no required additions to the tagging and description section of the file, and we obviously need to include PGgraphmacros.pl to do dynamic graphs.

  # a graph object
  $gr = init_graph(-1,4,-1,4,axes=>[0,0],grid=>[5,5]);
  # plot a function
  add_functions($gr,
  "4-3*e^(-x) for x in <-1,4> using color:blue and weight:2");

  # add a label
  $gr->lb( new Label(0.25,3.25,'(0,3)',
  'black','center','center'));

  # a line
  $gr->moveTo(-1,1);
  $gr->lineTo(4,1,'black');

  # and a point
  $gr->stamps( closed_circle(0,3,'blue') );

In the initialization part of the file, we define a [dynamically generated graph|DynamicImages]. Then we can add labels, lines and points to the graph.

To add labels, we use the lb method of the graph object. The argument is a new Label object, defined by an x-coordinate, y-coordinate, label text, color, and justification. The justification can be left, center or right for the left-to-right justification, and top, center or bottom for the top-to-bottom justification.

Lines are added by moving the graph "cursor" to a point and then drawing a line to a new point.

And we add points by using the stamps method of the graph object. We've added a closed circle here; as might expect, open_circles are also supported.

  BEGIN_TEXT
  \{ image( insertGraph($gr) ) \}
  END_TEXT

And the graph is inserted in the text portion of the problem as we'd expect any static or dynamic image to be.

Note that there is a more complete list of the plotting options available in a graph object in the CVS documentation for WWPlot and PGgraphmacros.

Problem Techniques Index