[LON-CAPA-cvs] cvs: loncom /homework functionplotresponse.pm
www
www at source.lon-capa.org
Sat Nov 19 15:03:58 EST 2011
www Sat Nov 19 20:03:58 2011 EDT
Modified files:
/loncom/homework functionplotresponse.pm
Log:
Sum of vectors attached to an object
-------------- next part --------------
Index: loncom/homework/functionplotresponse.pm
diff -u loncom/homework/functionplotresponse.pm:1.75 loncom/homework/functionplotresponse.pm:1.76
--- loncom/homework/functionplotresponse.pm:1.75 Sat Nov 19 13:45:36 2011
+++ loncom/homework/functionplotresponse.pm Sat Nov 19 20:03:58 2011
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# Functionplot responses
#
-# $Id: functionplotresponse.pm,v 1.75 2011/11/19 13:45:36 www Exp $
+# $Id: functionplotresponse.pm,v 1.76 2011/11/19 20:03:58 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -35,7 +35,7 @@
BEGIN {
&Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse','backgroundplot','spline',
- 'plotobject','plotvector','functionplotvectorrule',
+ 'plotobject','plotvector','functionplotvectorrule','functionplotvectorsumrule',
'functionplotrule','functionplotruleset',
'functionplotelements'));
}
@@ -509,7 +509,7 @@
$token,'8').
&Apache::edit::end_row();
} elsif ($target eq 'modified') {
- $env{'form.'.&Apache::edit::html_element_name('label')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('label')});
+ $env{'form.'.&Apache::edit::html_element_name('label')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('label')});
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','x','y');
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); }
}
@@ -564,7 +564,7 @@
&Apache::edit::end_row();
} elsif ($target eq 'modified') {
- $env{'form.'.&Apache::edit::html_element_name('label')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('label')});
+ $env{'form.'.&Apache::edit::html_element_name('label')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('label')});
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','tailx','taily','tipx','tipy');
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); }
}
@@ -780,6 +780,15 @@
my $vector=&Apache::lonxml::get_param('vector',$parstack,$safeeval);
$vector=~s/\W//gs;
$vector=ucfirst($vector);
+
+ my $attachpoint=&Apache::lonxml::get_param('attachpoint',$parstack,$safeeval);
+ $attachpoint=~s/\W//gs;
+ $attachpoint=ucfirst($attachpoint);
+
+ my $notattachpoint=&Apache::lonxml::get_param('notattachpoint',$parstack,$safeeval);
+ $notattachpoint=~s/\W//gs;
+ $notattachpoint=ucfirst($notattachpoint);
+
my $tailpoint=&Apache::lonxml::get_param('tailpoint',$parstack,$safeeval);
$tailpoint=~s/\W//gs;
$tailpoint=ucfirst($tailpoint);
@@ -796,7 +805,10 @@
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',(
$label,
+ 'vector',
$vector,
+ $attachpoint,
+ $notattachpoint,
$tailpoint,
$tippoint,
$nottailpoint,
@@ -812,6 +824,10 @@
$token,'10').' '.
&Apache::edit::text_arg('Vector:','vector',
$token,'16').'<br />'.
+ &Apache::edit::text_arg('Attached to object:','attachpoint',
+ $token,'16').
+ &Apache::edit::text_arg('Not attached to object:','notattachpoint',
+ $token,'16').'<br />'.
&Apache::edit::text_arg('Tail attached to object:','tailpoint',
$token,'16').
&Apache::edit::text_arg('Tip attached to object:','tippoint',
@@ -830,13 +846,15 @@
$token,'8').
&Apache::edit::end_row();
} elsif ($target eq 'modified') {
- $env{'form.'.&Apache::edit::html_element_name('vector')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('vector')});
- $env{'form.'.&Apache::edit::html_element_name('tailpoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('tailpoint')});
- $env{'form.'.&Apache::edit::html_element_name('tippoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('tippoint')});
- $env{'form.'.&Apache::edit::html_element_name('nottailpoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('nottailpoint')});
- $env{'form.'.&Apache::edit::html_element_name('nottippoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('nottippoint')});
+ $env{'form.'.&Apache::edit::html_element_name('vector')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('vector')});
+ $env{'form.'.&Apache::edit::html_element_name('attachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('attachpoint')});
+ $env{'form.'.&Apache::edit::html_element_name('notattachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('notattachpoint')});
+ $env{'form.'.&Apache::edit::html_element_name('tailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tailpoint')});
+ $env{'form.'.&Apache::edit::html_element_name('tippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tippoint')});
+ $env{'form.'.&Apache::edit::html_element_name('nottailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottailpoint')});
+ $env{'form.'.&Apache::edit::html_element_name('nottippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottippoint')});
my $constructtag=&Apache::edit::get_new_args($token,$parstack,
- $safeeval,'index','vector',
+ $safeeval,'index','vector','attachpoint','notattachpoint',
'tailpoint','tippoint','nottailpoint','nottipoint',
'length','angle',
'lengthpercenterror','anglepercenterror');
@@ -854,7 +872,77 @@
return $result;
}
+#
+# <functionplotvectorsumrule ... />
+#
+sub start_functionplotvectorsumrule {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+ my $result='';
+ my $label=&Apache::lonxml::get_param('index',$parstack,$safeeval);
+ $Apache::functionplotresponse::counter++;
+ if ($label=~/\W/) {
+ &Apache::lonxml::warning(&mt('Rule indices should only contain alphanumeric characters.'));
+ }
+ $label=~s/\W//gs;
+ unless ($label) {
+ $label='V'.$Apache::functionplotresponse::counter;
+ } else {
+ $label='V'.$label;
+ }
+ if ($Apache::functionplotresponse::splineorder{$label}) {
+ &Apache::lonxml::error(&mt('Rule indices must be unique.'));
+ }
+ if ($target eq 'grade') {
+# Simply remember - in order - for later
+ my $object=&Apache::lonxml::get_param('object',$parstack,$safeeval);
+ $object=~s/\W//gs;
+ $object=ucfirst($object);
+ push(@Apache::functionplotresponse::functionplotvectorrules,join(':',(
+ $label,
+ 'sum',
+ $object,
+ &Apache::lonxml::get_param('length',$parstack,$safeeval),
+ &Apache::lonxml::get_param('angle',$parstack,$safeeval),
+ &Apache::lonxml::get_param('lengthpercenterror',$parstack,$safeeval),
+ &Apache::lonxml::get_param('lengthabserror',$parstack,$safeeval),
+ &Apache::lonxml::get_param('anglepercenterror',$parstack,$safeeval),
+ )));
+ } elsif ($target eq 'edit') {
+ $result=&Apache::edit::tag_start($target,$token,'Function Plot Vector Sum Rule').
+ &Apache::edit::text_arg('Index/Name:','index',
+ $token,'10').' '.
+ &Apache::edit::text_arg('Vectors attached to object:','object',
+ $token,'16').'<br />'.
+ &Apache::edit::text_arg('Sum vector length:','length',
+ $token,'16').
+ &Apache::edit::text_arg('Sum vector angle:','angle',
+ $token,'16').
+ &Apache::edit::text_arg('Percent error length:','lengthpercenterror',
+ $token,'8').
+ &Apache::edit::text_arg('Absolute error length:','lengthabserror',
+ $token,'8').
+ &Apache::edit::text_arg('Percent error angle:','anglepercenterror',
+ $token,'8').
+ &Apache::edit::end_row();
+ } elsif ($target eq 'modified') {
+ $env{'form.'.&Apache::edit::html_element_name('object')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('object')});
+ my $constructtag=&Apache::edit::get_new_args($token,$parstack,
+ $safeeval,'index','object',
+ 'length','angle',
+ 'lengthpercenterror','lengthabserror','anglepercenterror');
+ if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); }
+ }
+ return $result;
+}
+sub end_functionplotvectorsumrule {
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+ my $result='';
+ if ($target eq 'edit') {
+ $result=&Apache::edit::end_table();
+ }
+ return $result;
+}
#
# <spline index="..." order="1,2,3,4" initx="..." inity="..." scalex="..." scaley="..." />
More information about the LON-CAPA-cvs
mailing list