--- loncom/xml/lonplot.pm 2003/09/27 04:15:26 1.85.2.1 +++ loncom/xml/lonplot.pm 2003/08/28 20:38:25 1.87 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.85.2.1 2003/09/27 04:15:26 albertel Exp $ +# $Id: lonplot.pm,v 1.87 2003/08/28 20:38:25 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -113,7 +113,7 @@ my $words_test = sub {$_[0]=~s/\s+/ ################################################################### my @gnuplot_edit_order = qw/alttag bgcolor fgcolor height width font transparent grid samples - border align texwidth/; + border align texwidth plottype/; my $gnuplot_help_text = <<"ENDPLOTHELP";

@@ -230,6 +230,13 @@ my %gnuplot_defaults = edit_type => 'entry', size => '5' }, + plottype => { + default => 'Cartesian', + test => sub {$_[0]=~/^(Polar|Cartesian)$/}, + description => 'Plot type:', + edit_type => 'choice', + choices => ['Polar','Cartesian'] + }, ); my %key_defaults = @@ -513,8 +520,8 @@ sub end_gnuplot { alt = "$plot{'alttag'}" /> ENDIMAGE } elsif ($target eq 'tex') { - #might be inside the safe space, register the URL for later - &Apache::lonxml::register_ssi("/cgi-bin/plot.gif?file=$filename.data&output=eps"); + &Apache::lonnet::ssi("/cgi-bin/plot.gif?file=$filename.data&output=eps"); + $result = '\graphicspath{{/home/httpd/perl/tmp/}}\includegraphics[width='.$plot{'texwidth'}.' mm]{'.&Apache::lonnet::unescape($filename).'.eps}'; } } elsif ($target eq 'edit') { @@ -970,8 +977,13 @@ sub set_defaults { sub get_attributes{ my ($values,$defaults,$parstack,$safeeval,$tag) = @_; foreach my $attr (keys(%{$defaults})) { - $values->{$attr} = - &Apache::lonxml::get_param($attr,$parstack,$safeeval); + if ($attr eq 'texwidth') { + $values->{$attr} = + &Apache::lonxml::get_param($attr,$parstack,$safeeval,undef,1); + } else { + $values->{$attr} = + &Apache::lonxml::get_param($attr,$parstack,$safeeval); + } if ($values->{$attr} eq '' | !defined($values->{$attr})) { $values->{$attr} = $defaults->{$attr}->{'default'}; next; @@ -1016,6 +1028,12 @@ sub write_gnuplot_file { $gnuplot_input .= "set output \"/home/httpd/perl/tmp/". &Apache::lonnet::unescape($filename).".eps\"\n"; } + # cartesian or polar? + if (lc($plot{'plottype'}) eq 'polar') { + $gnuplot_input .= 'set polar'.$/; + } else { + # Assume Cartesian + } # grid $gnuplot_input .= 'set grid'.$/ if ($plot{'grid'} eq 'on'); # border