Difference between revisions of "DynamicImages3"

From WeBWorK_wiki
Jump to navigation Jump to search
Line 70: Line 70:
 
# uses some macros directly from GD.pm
 
# uses some macros directly from GD.pm
 
#
 
#
# first translate from graph coordinates to pixel coordinates
 
  +
$gr2 = init_graph(-4,-4,4,4,grid=>[8,8],axes=>[0,0],pixels=>[300,300]);
  +
$lightblue = $gr2->im->colorAllocate(148,201,255);
  +
$darkblue = $gr2->im->colorAllocate(100,100,255);
  +
#
  +
# translate from graph coordinates to pixel coordinates
  +
#
 
$xminpixel = $gr2->ii($xmin);
 
$xminpixel = $gr2->ii($xmin);
 
$xmaxpixel = $gr2->ii($xmax);
 
$xmaxpixel = $gr2->ii($xmax);
 
$yminpixel = $gr2->jj($ymin);
 
$yminpixel = $gr2->jj($ymin);
 
$ymaxpixel = $gr2->jj($ymax);
 
$ymaxpixel = $gr2->jj($ymax);
#
 
$gr2 = init_graph(-4,-4,4,4,grid=>[8,8],axes=>[0,0],pixels=>[300,300]);
 
$lightblue = $gr2->im->colorAllocate(148,201,255);
 
$darkblue = $gr2->im->colorAllocate(100,100,255);
 
$gr2->new_color("lightblue",148,201,255);
 
$gr2->new_color("darkblue", 100,100,255);
 
 
#
 
#
 
# use filledRectangle and rectangle from GD.pm, accessed via ->im->
 
# use filledRectangle and rectangle from GD.pm, accessed via ->im->
  +
#
 
$gr2->im->filledRectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$lightblue);
 
$gr2->im->filledRectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$lightblue);
 
$gr2->im->rectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$darkblue);
 
$gr2->im->rectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$darkblue);

Revision as of 21:48, 22 February 2010

Dynamic Graphic Images, with Filled Regions


This code snippet shows the essential PG code to check student answers that are equations. 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
DOCUMENT();
loadMacros(
"PGstandard.pl",
"PGgraphmacros.pl",
# "PGnumericalmacros.pl", # might be useful
);

TEXT(beginproblem());

Initialization: To do ..(what you are doing)........., we don't have to change the tagging and documentation section of the problem file. In the initialization section, we need to include the macros file -------.pl.


$xmin = random(-3,-1,1);
$xmax = random(1,3,1);

$ymin = random(-3,-1,1);
$ymax = random(1,3,1);

#  filled triangle with dark border
#  uses macros provided by WWplot.pm
$gr1 = init_graph(-4,-4,4,4,grid=>[8,8],axes=>[0,0],pixels=>[300,300]);
$gr1->new_color("lightgreen",156,215,151); # RGB
$gr1->new_color("darkgreen",   0, 86, 34);
$gr1->moveTo($xmin,$ymin);
$gr1->lineTo($xmax,$ymin,"darkgreen",2); # bottom edge
$gr1->lineTo($xmin,$ymax,"darkgreen",2); # hypotenuse
$gr1->lineTo($xmin,$ymin,"darkgreen",2); # left edge
$gr1->fillRegion([$xmin+0.1,$ymin+0.1,"lightgreen"]);


#  filled rectangle with dark border
#  uses some macros directly from GD.pm
#
$gr2 = init_graph(-4,-4,4,4,grid=>[8,8],axes=>[0,0],pixels=>[300,300]);
$lightblue = $gr2->im->colorAllocate(148,201,255);
$darkblue  = $gr2->im->colorAllocate(100,100,255);
#
#  translate from graph coordinates to pixel coordinates
#
$xminpixel = $gr2->ii($xmin);
$xmaxpixel = $gr2->ii($xmax);
$yminpixel = $gr2->jj($ymin);
$ymaxpixel = $gr2->jj($ymax);
# 
#  use filledRectangle and rectangle from GD.pm, accessed via ->im-> 
#
$gr2->im->filledRectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$lightblue);
$gr2->im->rectangle($xminpixel,$yminpixel,$xmaxpixel,$ymaxpixel,$darkblue);

Setup: We specify that the Context should be ......, and define the answer to be a formula.

Notes: on using this and related Contexts.

BEGIN_TEXT
$BCENTER
\{ image( insertGraph($gr1), height=>300, width=>300, tex_size=>800 ) \}
$ECENTER
$PAR
$BCENTER
\{ image( insertGraph($gr2), height=>300, width=>300, tex_size=>800 ) \}
$ECENTER
END_TEXT

Main Text: The problem text section of the file is as we'd expect.


$showPartialCorrectAnswers = 1;

ENDDOCUMENT();

Answer Evaluation: As is the answer.

Problem Techniques Index