--- loncom/homework/functionplotresponse.pm 2011/10/13 01:54:12 1.65 +++ loncom/homework/functionplotresponse.pm 2011/10/27 00:36:37 1.69 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: functionplotresponse.pm,v 1.65 2011/10/13 01:54:12 www Exp $ +# $Id: functionplotresponse.pm,v 1.69 2011/10/27 00:36:37 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -76,7 +76,7 @@ sub geogebra_default_parameters { <param name="boxborder" value="false" /> <param name="centerimage" value="true" /> <param name="cache_archive" value="geogebra.jar, geogebra_main.jar, geogebra_gui.jar, geogebra_cas.jar, geogebra_export.jar, geogebra_algos.jar, geogebra_javascript.jar, geogebra_properties.jar, jlatexmath.jar, jlm_cyrillic.jar, jlm_greek.jar" /> - <param name="cache_version" value="3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0, 3.9.219.0" /> + <param name="cache_version" value="4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0,4.0.1.0" /> <param name="framePossible" value="false" /> <param name="showResetIcon" value="false" /> @@ -164,6 +164,14 @@ sub update_register { sub set_point_coordinate { my ($id,$variable,$x,$y,$fixed)=@_; my $mult=($fixed?'a*':''); +# Get rid of wild exponents, make sure it's a number + $x=1.*$x; + $y=1.*$y; +# GeoGebra does not understand "E" + $x=~s/[e|E]/\*10\^/; + $x=~s/\+//; + $y=~s/[e|E]/\*10\^/; + $y=~s/\+//; return (<<ENDSETVARIABLE); document.ggbApplet_$id.evalCommand("a=1"); document.ggbApplet_$id.evalCommand("$variable=$mult($x,$y)"); @@ -973,6 +981,7 @@ sub compare_rel { sub addlog { my ($text)=@_; + $text=~s/\'/\\\'/g; $Apache::functionplotresponse::ruleslog.=$text.'<br />'; } @@ -981,6 +990,13 @@ sub actualval { return $xmin+$i/400.*($xmax-$xmin); } +sub fpr_val { + my ($arg)=@_; + return &actualval($Apache::functionplotresponse::functionplotrulelabels{$arg}, + $Apache::functionplotresponse::fpr_xmin, + $Apache::functionplotresponse::fpr_xmax); +} + sub fpr_f { my ($arg)=@_; return $Apache::functionplotresponse::func[&array_index($Apache::functionplotresponse::fpr_xmin,