Difference between revisions of "DynamicGraph1"
(Created page with '<h2>Dynamically Generated Graph</h2> 300px|thumb|right|Click to enlarge <p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"> This …') |
|||
Line 106: | Line 106: | ||
<p> |
<p> |
||
<b>Setup:</b> |
<b>Setup:</b> |
||
− | For more details on the graph object <code>$gr</code>, see the [ |
+ | For more details on the graph object <code>$gr</code>, see the help documents for graphs in the [IndexOfProblemTechniques|index of problem techniques]. |
</p> |
</p> |
||
</td> |
</td> |
Revision as of 01:29, 4 December 2010
Dynamically Generated Graph
This PG code shows how to create a dynamically generated graph with labels that is appropriately sized and positioned.
- Download file: File:DynamicGraph1.txt (change the file extension from txt to pg when you save it)
- File location in NPL:
FortLewis/Authoring/Templates/Precalc/DynamicGraph1.pg
PG problem file | Explanation |
---|---|
Problem tagging: |
|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "AnswerFormatHelp.pl", "PGgraphmacros.pl", "unionTables.pl", ); TEXT(beginproblem()); $refreshCachedImages = 1; |
Initialization:
It is important to set |
Context("Numeric"); $a = random(2,3,1); # left x-intercept $b = random(2,4,2); # right x-intercept $c = random(5,6,1); # y-intercept $k = -($c)/($a * $b); $A = $k; $B = $k*($a - $b); $C = -($k * $a * $b); # # Graph canvas # $gr = init_graph(-5,-1,5,9,axes=>[0,0],grid=>[10,10],size=>[300,300]); $gr -> lb('reset'); # # Graph labels and functions # $gr -> lb(new Label ( 4.5,0,'x','black','left','bottom')); $gr -> lb(new Label ( 0.25,8.5,'y','black','left','bottom')); $gr -> lb(new Label ( 0.25,$c,'y = f(x)','black','left','bottom')); foreach my $i (1..4) { $gr -> lb(new Label ( $i,-0.5, $i,'black','center','middle')); $gr -> lb(new Label (-$i,-0.5,-$i,'black','center','middle')); } foreach my $j (1..8) { $gr -> lb(new Label (-4.5,$j,$j,'black','center','middle')); } add_functions($gr, "$A*x**2+$B*x+$C for x in <-5,5> using color:blue and weight:2"); |
Setup:
For more details on the graph object |
Context()->texStrings; BEGIN_TEXT \{ ColumnTable( "Use the graph to find the missing values. There may be more than one correct answer, in which case you should enter your answers as a comma separated list. If there are no correct answers, enter ${BITALIC}NONE.${EITALIC} $BR $BR (a) \( f(0) = \) " . ans_rule(7).$SPACE. AnswerFormatHelp("numbers"). "$BR $BR (b) \( f \big( \) ".ans_rule(7)." \( \big) = 0 \). ". AnswerFormatHelp("numbers") , image(insertGraph($gr), width=>300, height=>300, tex_size=>700). $BR.$BCENTER. $BR. "Graph of \( y = f(x) \)". $ECENTER , indent => 0, separation => 30, valign => "TOP" ) \} END_TEXT Context()->normalStrings; |
Main Text:
We use a two column format provided by
Using a |
$showPartialCorrectAnswers = 1; ANS(List($c)->cmp() ); ANS(List(-$a,$b)->cmp() ); |
Answer Evaluation: |
Context()->texStrings; BEGIN_SOLUTION ${PAR}SOLUTION:${PAR} Solution explanation goes here. END_SOLUTION Context()->normalStrings; COMMENT('MathObject version.'); ENDDOCUMENT(); |
Solution: |