FlashPointAndGraph: Difference between revisions
No edit summary |
No edit summary |
||
| (6 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{warning}} Flash is not supported by major browsers any more. {{historical}} | |||
<h2>Flash applet example: Graph and Point</h2> | <h2>Flash applet example: Graph and Point</h2> | ||
| Line 84: | Line 86: | ||
<p> | <p> | ||
This snippet defines the applet <code>PointGraph</code>. | This snippet defines the applet <code>PointGraph</code>. | ||
This applet was designed by Doug Ensley. The applet .swf file can be obtained here. | This applet was designed by Doug Ensley. The applet .swf file can be obtained [http://webwork.maa.org/viewvc/system/trunk/webwork2/htdocs/applets/PointGraph/PointGraph.swf?revision=6776&view=markup here]. | ||
This wiki has more information on '''[[FlashApplets| designing Flash applets]]''' for WeBWorK and a | This wiki has more information on '''[[FlashApplets| designing Flash applets]]''' for WeBWorK and a | ||
'''[[Simple_example]]''' of converting an existing flash applet for use in WeBWorK. Functional WeBWorK questions using the "PointGraph" applet can be viewed [http://hosted2.webwork.rochester.edu/webwork2/wikiExamples/PointAndGraph_AppletDemos/?login_practice_user=true here ]. | '''[[Simple_example]]''' of converting an existing flash applet for use in WeBWorK. Functional WeBWorK questions using the "PointGraph" applet can be viewed [http://hosted2.webwork.rochester.edu/webwork2/wikiExamples/PointAndGraph_AppletDemos/?login_practice_user=true here ]. | ||
| Line 104: | Line 106: | ||
<p><code>submitActionScript</code> is a short javaScript command which is one way of customizing the behavior of the applet when the submit button is pressed. (It should not contain line breaks to satisfy javaScript requirements.) | <p><code>submitActionScript</code> is a short javaScript command which is one way of customizing the behavior of the applet when the submit button is pressed. (It should not contain line breaks to satisfy javaScript requirements.) | ||
</p> | </p> | ||
<p>''[[FlashApplets | FlashApplets]]'' describes this interface from the flash applets point of view. | <p>'''[[FlashApplets | FlashApplets]]''' describes this interface from the flash applets point of view. | ||
</p> | </p> | ||
</td> | </td> | ||
| Line 188: | Line 190: | ||
<p style="text-align:center;"> | <p style="text-align:center;"> | ||
[[IndexOfProblemTechniques|Problem Techniques Index]] | [[IndexOfProblemTechniques|Problem Techniques Index]]<br/> | ||
[[:Category:Applets | More on how to embed applets in WeBWorK Questions]] | |||
</p> | </p> | ||
[[Category:Problem Techniques]] | [[Category:Problem Techniques]] | ||
[[Category:Flash Applets]] | |||
<ul> | |||
<li>POD documentation: [http://webwork.maa.org/pod/pg/macros/AppletObjects.html AppletObjects.pl]</li> | |||
<li>PG macro: [http://webwork.maa.org/viewvc/system/trunk/pg/macros/AppletObjects.pl?view=log AppletObjects.pl]</li> | |||
</ul> | |||
Latest revision as of 22:07, 15 June 2021
Warning : Flash is not supported by major browsers any more.
Flash applet example: Graph and Point
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.
| PG problem file | Explanation |
|---|---|
loadMacros("AppletObjects.pl",
"answerHints.pl"
);
|
In the initialization section, we need to include the macros file |
Context("Point");
$a = Real( random(-4,4,0.5) );
$b = Real( random(-3,3,1) );
$function = Formula("(x - $a)^3 + ($b/$a) * x")->reduce;
$x0 = $a;
$y0= $function->eval(x=>$x0);
$answer_point = Compute("($x0, $y0)");
|
In the problem set-up section of the file, we specify that the Context should be |
###################################
# Create link to applet
###################################
$appletName = "PointGraph";
$applet = FlashApplet(
codebase => findAppletCodebase("$appletName.swf"),
appletName => $appletName,
appletId => $appletName,
setStateAlias => 'setXML',
getStateAlias => 'getXML',
setConfigAlias => 'setConfig',
answerBoxAlias => 'answerBox',
debugMode => 0,
submitActionScript =>
qq{getQE("answerBox").value=getApplet("$appletName").getAnswer() },
);
|
This snippet defines the applet
The
The
FlashApplets describes this interface from the flash applets point of view. |
###################################
# Configure applet
###################################
#data to set up the equation
$applet->configuration(qq{<XML expr='$function' />});
# initial points
$applet->initialState(qq{<XML> <pt xval='0' yval='0'/></XML>});
###################################
#insert applet into body
###################################
TEXT( MODES(TeX=>'object code', HTML=>$applet->insertAll(
debug=>0,
includeAnswerBox=>1,
reinitialize_button=>$permissionLevel>=10,
)));
|
Now we configure the applet. The contents of The |
BEGIN_TEXT $PAR Drag the point to the inflection point of the given curve and press the submit button. END_TEXT |
The problem text section of the file is as we'd expect. |
NAMED_ANS('answerBox'=>$answer_point
->with(tolType=>"absolute",tolerance=>.05)
->cmp
->withPostFilter(AnswerHints(
sub {
my ($correct,$student,$ans) = @_;
return Vector($correct-$student)->norm<.2 ;
} => ["You're close. You need to position
the dot more precisely.", replaceMessage=>1]
)));
|
The answer checker grabs the answer from the default |
Problem Techniques Index
More on how to embed applets in WeBWorK Questions
- POD documentation: AppletObjects.pl
- PG macro: AppletObjects.pl