version 1.85, 2011/11/22 02:13:37
|
version 1.88, 2011/11/26 01:35:26
|
Line 49 BEGIN {
|
Line 49 BEGIN {
|
# |
# |
|
|
sub geogebra_startcode { |
sub geogebra_startcode { |
my ($id)=@_; |
my ($id,$width,$height)=@_; |
|
$width=int(1.*$width); |
|
$height=int(1.*$height); |
|
unless ($width) { $width=700; } |
|
unless ($height) { $height=400; } |
return (<<ENDSTARTCODE); |
return (<<ENDSTARTCODE); |
<applet name="ggbApplet_$id" code="geogebra.GeoGebraApplet" archive="geogebra.jar" |
<applet name="ggbApplet_$id" code="geogebra.GeoGebraApplet" archive="geogebra.jar" |
codebase="/adm/geogebra/" width="722" height="447" MAYSCRIPT> |
codebase="/adm/geogebra/" width="$width" height="$height" MAYSCRIPT> |
<param name="java_arguments" value="-Xmx512m -Djnlp.packEnabled=true"/> |
<param name="java_arguments" value="-Xmx512m -Djnlp.packEnabled=true"/> |
ENDSTARTCODE |
ENDSTARTCODE |
} |
} |
Line 783 sub start_functionplotvectorrule {
|
Line 787 sub start_functionplotvectorrule {
|
$vector=~s/\W//gs; |
$vector=~s/\W//gs; |
$vector=ucfirst($vector); |
$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); |
|
my $tippoint=&Apache::lonxml::get_param('tippoint',$parstack,$safeeval); |
|
$tippoint=~s/\W//gs; |
|
$tippoint=ucfirst($tippoint); |
|
|
|
my $nottailpoint=&Apache::lonxml::get_param('nottailpoint',$parstack,$safeeval); |
|
$nottailpoint=~s/\W//gs; |
|
$nottailpoint=ucfirst($nottailpoint); |
|
my $nottippoint=&Apache::lonxml::get_param('nottippoint',$parstack,$safeeval); |
|
$nottippoint=~s/\W//gs; |
|
$nottippoint=ucfirst($nottippoint); |
|
|
|
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',( |
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',( |
$label, |
$label, |
'vector', |
'vector', |
$internalid, |
$internalid, |
$vector, |
$vector, |
$attachpoint, |
&Apache::lonxml::get_param('attachpoint',$parstack,$safeeval), |
$notattachpoint, |
&Apache::lonxml::get_param('notattachpoint',$parstack,$safeeval), |
$tailpoint, |
&Apache::lonxml::get_param('tailpoint',$parstack,$safeeval), |
$tippoint, |
&Apache::lonxml::get_param('tippoint',$parstack,$safeeval), |
$nottailpoint, |
&Apache::lonxml::get_param('nottailpoint',$parstack,$safeeval), |
$nottippoint, |
&Apache::lonxml::get_param('nottippoint',$parstack,$safeeval), |
&Apache::lonxml::get_param('length',$parstack,$safeeval), |
&Apache::lonxml::get_param('length',$parstack,$safeeval), |
&Apache::lonxml::get_param('angle',$parstack,$safeeval), |
&Apache::lonxml::get_param('angle',$parstack,$safeeval), |
&Apache::lonxml::get_param('lengtherror',$parstack,$safeeval), |
&Apache::lonxml::get_param('lengtherror',$parstack,$safeeval), |
Line 850 sub start_functionplotvectorrule {
|
Line 832 sub start_functionplotvectorrule {
|
&Apache::edit::end_row(); |
&Apache::edit::end_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$env{'form.'.&Apache::edit::html_element_name('vector')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('vector')}); |
$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, |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
$safeeval,'index','vector','attachpoint','notattachpoint', |
$safeeval,'index','vector','attachpoint','notattachpoint', |
'tailpoint','tippoint','nottailpoint','nottipoint', |
'tailpoint','tippoint','nottailpoint','nottipoint', |
Line 1276 sub start_functionplotresponse {
|
Line 1252 sub start_functionplotresponse {
|
.&Apache::edit::end_row() |
.&Apache::edit::end_row() |
.&Apache::edit::start_spanning_row() |
.&Apache::edit::start_spanning_row() |
."\n"; |
."\n"; |
$result.=&Apache::edit::text_arg('Label x-axis:','xlabel', |
$result.=&Apache::edit::text_arg('Width (pixels):','width', |
|
$token,'6').' '. |
|
&Apache::edit::text_arg('Height (pixels):','height', |
|
$token,'6').'<br />'. |
|
&Apache::edit::text_arg('Label x-axis:','xlabel', |
$token,'6').' '. |
$token,'6').' '. |
&Apache::edit::text_arg('Minimum x-value:','xmin', |
&Apache::edit::text_arg('Minimum x-value:','xmin', |
$token,'4').' '. |
$token,'4').' '. |
Line 1299 sub start_functionplotresponse {
|
Line 1279 sub start_functionplotresponse {
|
&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
$safeeval,'xlabel','xmin','xmax','ylabel','ymin','ymax', |
$safeeval,'width','height','xlabel','xmin','xmax','ylabel','ymin','ymax', |
'xaxisvisible','yaxisvisible','gridvisible','answerdisplay'); |
'xaxisvisible','yaxisvisible','gridvisible','answerdisplay'); |
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } |
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } |
|
|
Line 1470 sub objectcoords {
|
Line 1450 sub objectcoords {
|
} |
} |
|
|
sub attached { |
sub attached { |
my ($id,$vector,$object,$xmin,$xmax,$ymin,$ymax)=@_; |
my ($id,$vector,$objects,$xmin,$xmax,$ymin,$ymax)=@_; |
my ($xs,$xe,$ys,$ye)=&vectorcoords($id,$vector); |
my ($xs,$xe,$ys,$ye)=&vectorcoords($id,$vector); |
my ($xo,$yo)=&objectcoords($id,$object); |
|
my $tolx=($xmax-$xmin)/100.; |
my $tolx=($xmax-$xmin)/100.; |
my $toly=($ymax-$ymin)/100.; |
my $toly=($ymax-$ymin)/100.; |
my $tail=0; |
my $tail=0; |
my $tip=0; |
my $tip=0; |
&addlog("Proximity $vector ($xs,$xe,$ys,$ye) to $object ($xo,$yo)"); |
foreach my $obj (split(/\s*\,\s*/,$objects)) { |
if ((abs($xs-$xo)<$tolx) && (abs($ys-$yo)<$toly)) { $tail=1; } |
$obj=~s/\W//g; |
if ((abs($xe-$xo)<$tolx) && (abs($ye-$yo)<$toly)) { $tip=1; } |
unless ($obj) { next; } |
|
$obj=ucfirst($obj); |
|
my ($xo,$yo)=&objectcoords($id,$obj); |
|
&addlog("Proximity $vector ($xs,$ys)-($xe,$ye) to $obj ($xo,$yo)"); |
|
if ((abs($xs-$xo)<$tolx) && (abs($ys-$yo)<$toly)) { |
|
$tail=1; |
|
&addlog("Attached tail: $obj"); |
|
} |
|
if ((abs($xe-$xo)<$tolx) && (abs($ye-$yo)<$toly)) { |
|
$tip=1; |
|
&addlog("Attached tip: $obj"); |
|
} |
|
} |
&addlog("Result tail:$tail tip:$tip"); |
&addlog("Result tail:$tail tip:$tip"); |
return($tail,$tip); |
return($tail,$tip); |
} |
} |
Line 2003 sub end_functionplotelements {
|
Line 1994 sub end_functionplotelements {
|
# generate the input fields |
# generate the input fields |
$result.=$Apache::functionplotresponse::inputfields; |
$result.=$Apache::functionplotresponse::inputfields; |
# actually start the <applet>-tag |
# actually start the <applet>-tag |
$result.=&geogebra_startcode($internalid); |
$result.=&geogebra_startcode($internalid, |
|
&Apache::lonxml::get_param('width',$parstack,$safeeval,-2), |
|
&Apache::lonxml::get_param('height',$parstack,$safeeval,-2)); |
# load the spline bytecode |
# load the spline bytecode |
$result.=&geogebra_spline_program(); |
$result.=&geogebra_spline_program(); |
# set default parameters |
# set default parameters |