8) { $order=8; }
+ $Apache::functionplotresponse::counter++;
+ my $label='CSpline'.$Apache::functionplotresponse::counter;
+ my $output='document.ggbApplet_'.$id.'.evalCommand("'.$label.'=Spline'.$order.'[';
+ for (my $i=0;$i<=$#points;$i+=4) {
+ $output.="($points[$i],$points[$i+1]),($points[$i+2],$points[$i+3]),";
+ }
+ $output=~s/\,$//;
+ $output.=']");'."\n";
+ for (my $i=2; $i<2*$order; $i+=2) {
+ $output.='document.ggbApplet_'.$id.'.setColor("'.$label.'_'.($i>=10?'{':'').$i.($i>=10?'}':'').'",0,170,0);'."\n";
+ }
+ for (my $i=1; $i<2*$order; $i+=2) {
+ $output.='document.ggbApplet_'.$id.'.setVisible("'.$label.'_'.($i>=10?'{':'').$i.($i>=10?'}':'').'",false);'."\n";
+ }
+
+ return $output;
+}
+
+#
# Subroutine that generates code for spline $label based on stored information
#
@@ -536,6 +568,12 @@ sub start_functionplotrule {
$token,'8').
&Apache::edit::end_row();
} elsif ($target eq 'modified') {
+ if (($env{'form.'.&Apache::edit::html_element_name('xinitial')} ne '') && ($env{'form.'.&Apache::edit::html_element_name('xinitiallabel')} eq 'start')) {
+ $env{'form.'.&Apache::edit::html_element_name('xinitiallabel')}='';
+ }
+ if (($env{'form.'.&Apache::edit::html_element_name('xfinal')} ne '') && ($env{'form.'.&Apache::edit::html_element_name('xfinallabel')} eq 'end')) {
+ $env{'form.'.&Apache::edit::html_element_name('xfinallabel')}='';
+ }
my $constructtag=&Apache::edit::get_new_args($token,$parstack,
$safeeval,'index','derivativeorder',
'xinitial','xinitiallabel','xfinal','xfinallabel',
@@ -816,7 +854,8 @@ sub start_functionplotresponse {
.''.&mt('Function Plot Question').' | '
.''.&mt('Delete?').' '
.&Apache::edit::deletelist($target,$token).' '
- .&Apache::edit::insertlist($target,$token)
+ .&Apache::edit::insertlist($target,$token).' '
+ .&Apache::loncommon::help_open_topic('Function_Plot_Response_Question','Function Plot Responses')
.' | '
." "
.&Apache::edit::end_row()
@@ -840,7 +879,7 @@ sub start_functionplotresponse {
['yes','no'],$token).' '.
&Apache::edit::select_arg('Grid visible:','gridvisible',
['yes','no'],$token).' '.
- &Apache::edit::text_arg('Background plot(s) for answer (function:xmin:xmax,function:xmin:xmax,...):',
+ &Apache::edit::text_arg('Background plot(s) for answer (function(x):xmin:xmax,function(x):xmin:xmax,x1:y1:sx1:sy1:x2:y2:sx2:sy2,...):',
'answerdisplay',$token,'50');
&Apache::edit::end_row().&Apache::edit::start_spanning_row();
@@ -1100,7 +1139,8 @@ sub start_functionplotruleset {
' |
'.&mt('Function Plot Rule Set').' | '
.''.&mt('Delete?').' '
.&Apache::edit::deletelist($target,$token).' '.
- &Apache::edit::insertlist($target,$token)
+ &Apache::edit::insertlist($target,$token).' '
+ .&Apache::loncommon::help_open_topic('Function_Plot_Response_Rule_Set','Function Plot Rules')
.' | '
." "
.&Apache::edit::end_row()
@@ -1211,10 +1251,17 @@ sub end_functionplotelements {
my $answerdisplay=&Apache::lonxml::get_param('answerdisplay',$parstack,$safeeval,-2);
if ($answerdisplay=~/\S/s) {
foreach my $plot (split(/\s*\,\s*/,$answerdisplay)) {
- my ($func,$xl,$xh)=split(/\s*\:\s*/,$plot);
- if ((!defined($xl)) || ($xl eq '')) { $xl=$xmin; }
- if ((!defined($xh)) || ($xh eq '')) { $xh=$xmax; }
- $result.=&plot_script($internalid,$func,1,'','00aa00',$xl,$xh,6);
+ my @components=split(/\s*\:\s*/,$plot);
+ if ($#components<3) {
+# Just a simple plot
+ my ($func,$xl,$xh)=@components;
+ if ((!defined($xl)) || ($xl eq '')) { $xl=$xmin; }
+ if ((!defined($xh)) || ($xh eq '')) { $xh=$xmax; }
+ $result.=&plot_script($internalid,$func,1,'','00aa00',$xl,$xh,6);
+ } else {
+# This is a spline
+ $result.=&answer_spline_script($internalid,@components);
+ }
}
}
}
@@ -1278,7 +1325,8 @@ sub start_functionplotelements {
' |
'.&mt('Function Plot Elements').' | '
.''.&mt('Delete?').' '
.&Apache::edit::deletelist($target,$token).' '.
- &Apache::edit::insertlist($target,$token)
+ &Apache::edit::insertlist($target,$token).' '
+ .&Apache::loncommon::help_open_topic('Function_Plot_Response_Elements','Function Plot Elements')
.' | '
." "
.&Apache::edit::end_row()
|