ExtractingCoordinatesFromPoint: Difference between revisions
No edit summary |
(added historical tag and gave updated problem link) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<h2> | {{historical}} | ||
<p style="font-size: 120%;font-weight:bold">This problem has been replaced with [https://openwebwork.github.io/pg-docs/sample-problems/problem-techniques/ExtractingCoordinatesFromPoint.html a newer version of this problem]</p> | |||
<h2>Extracting coordinates from a Point: PG Code Snippet</h2> | |||
<!-- Header for these sections -- no modification needed --> | <!-- Header for these sections -- no modification needed --> | ||
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | |||
<em>This code snippet shows the essential PG code to evaluate antderivative and general antiderivative formulas. Note that these are <b>insertions</b>, not a complete PG file. This code will have to be incorporated into the problem file on which you are working.</em> | |||
</p> | |||
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> | ||
Line 23: | Line 30: | ||
<td style="background-color:#ddffdd;border:black 1px dashed;"> | <td style="background-color:#ddffdd;border:black 1px dashed;"> | ||
<pre> | <pre> | ||
loadMacros("MathObjects.pl"); | |||
</pre> | </pre> | ||
</td> | </td> | ||
<td style="background-color:#ccffcc;padding:7px;"> | <td style="background-color:#ccffcc;padding:7px;"> | ||
<p> | <p> | ||
In the initialization section, we need to include the macros file <code>MathObjects.pl</code>. | |||
In the initialization section, we need to include the macros file <code> | |||
</p> | </p> | ||
</td> | </td> | ||
Line 42: | Line 47: | ||
Context( "Point" ); | Context( "Point" ); | ||
push( @point, Point( random(1,5,1) , random(-5,-1,1) ) ); | push(@point, Point(random(1,5,1), random(-5,-1,1))); | ||
push( @point, Point( random(5,10,1) , random(6,11,1) ) ); | push(@point, Point(random(5,10,1), random(6,11,1))); | ||
# now we have two points, $point[0] = (x1,y1) | |||
# and $point[1] = (x2,y2). | |||
# the following makes $d1 = x1 - x2, $d2 = y1 - y2 | |||
($d1, $d2) = ($point[0] - $point[1])->value; | |||
$length = Compute("sqrt( ($d1)^2+($d2)^2 )"); | $length = Compute("sqrt( ($d1)^2+($d2)^2 )"); | ||
$mid = ( $point[1] + $point[0] ) / 2; | $mid = ( $point[1] + $point[0] ) / 2; | ||
Line 54: | Line 62: | ||
<td style="background-color:#ffffcc;padding:7px;"> | <td style="background-color:#ffffcc;padding:7px;"> | ||
<p> | <p> | ||
In the problem setup section of the file, we put the value of the subtraction of two Points in two variables, <code>$d1</code>, the x coordinate, and <code>$d2</code>, the y coordinate. This is achieved by calling Point's <code>value</code> method, as shown. | |||
</p> | |||
<p>Alternative method: If you want to get only one of the coordinates of a Point, you can use the <code>extract</code> method, for example: <code>$x = $point->extract(1);</code>. This gets the first coordinate of <code>$point</code> (x) and assigns it to the variable <code>$x</code>. | |||
</p> | </p> | ||
<p> | <p> | ||
We don't use <code>Context("Vector");</code> and <code>norm( $point[0] - $point[1] )</code> here | |||
to determine length because we don't want to accept an answer like <code>|<5,7>-<7,8>|</code>. | |||
</p> | |||
<p>Alternative method: You can use <code>$length=norm( $point[0] - $point[1] );</code> with <code>Context("Vector");</code> if you want to accept answers that are valid in the Vector context (such as the absolute value of a vector). | |||
</p> | |||
<p> | |||
We need to put parentheses around <code>$d1</code> and <code>$d2</code> in the <code>Compute</code> expression because if <code>$d1 = -6</code>, then <code>-6^2 = -36</code>, not <code>36</code>, as desired. However, if the code is <code>($d1)^2</code> then that evaluates as <code>(-6)^2 = 36</code>, as desired. | |||
</p> | </p> | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 72: | Line 86: | ||
BEGIN_TEXT | BEGIN_TEXT | ||
Consider the two points \( $point[0] \) and \( $point[1] \). | Consider the two points \( $point[0] \) | ||
The distance between them is:\{ $length->ans_rule() \} | and \( $point[1] \). | ||
The distance between them is: | |||
\{ $length->ans_rule() \} | |||
$BR | $BR | ||
The midpoint of the line segment | The midpoint of the line segment |
Latest revision as of 13:42, 28 June 2023
This problem has been replaced with a newer version of this problem
Extracting coordinates from a Point: PG Code Snippet
This code snippet shows the essential PG code to evaluate antderivative and general antiderivative formulas. 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.
This wiki page is under construction as of 6/13/08.
PG problem file | Explanation |
---|---|
loadMacros("MathObjects.pl"); |
In the initialization section, we need to include the macros file |
Context( "Point" ); push(@point, Point(random(1,5,1), random(-5,-1,1))); push(@point, Point(random(5,10,1), random(6,11,1))); # now we have two points, $point[0] = (x1,y1) # and $point[1] = (x2,y2). # the following makes $d1 = x1 - x2, $d2 = y1 - y2 ($d1, $d2) = ($point[0] - $point[1])->value; $length = Compute("sqrt( ($d1)^2+($d2)^2 )"); $mid = ( $point[1] + $point[0] ) / 2; |
In the problem setup section of the file, we put the value of the subtraction of two Points in two variables, Alternative method: If you want to get only one of the coordinates of a Point, you can use the
We don't use Alternative method: You can use
We need to put parentheses around |
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. |