ExtractingCoordinatesFromPoint

From WeBWorK_wiki
Revision as of 16:17, 13 June 2008 by Darnold (talk | contribs)
Jump to navigation Jump to search

Your title here: PG Code Snippet


This wiki page is under construction as of 6/13/08.

Problem Techniques Index

PG problem file Explanation
  loadMacros("any macros files that are needed");

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.

Context( "Point" );

push( @point, Point( random(1,5,1) , random(-5,-1,1) ) );
push( @point, Point( random(5,10,1) , random(6,11,1) ) );

($d1, $d2) = ($point[0] - $point[1])->value; # $d1 = x1 - x2, $d2 = y1 - y2

# Need to put () around $d1 and $d2 because if $d1 = -6, then -6^2 = -36, not 36, as desired.
$length = Compute("sqrt( ($d1)^2+($d2)^2 )");
$mid = ( $point[1] + $point[0] ) / 2;

We don't use Context("Vector") and norm( $point[0] - $point[1] ) to determine length because we don't want to accept an answer like |<5,7>-<7,8>| You could use $length=norm( $point[0] - $point[1] ); with the Vector context if you didn't care about accepting answers that are valid in the Vector context.

Notes: on using this and related Contexts.

Context()->texStrings;

BEGIN_TEXT
Consider the two points \( $point[0] \) and \( $point[1] \).
The distance between them is:\{ $length->ans_rule() \}
$BR
The midpoint of the line segment
that joins them is:\{ $mid->ans_rule() \}
$BR
END_TEXT

Context()->normalStrings;

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

ANS( $length->cmp );
ANS( $mid->cmp );

As is the answer.

Problem Techniques Index