Diff for /loncom/cgi/plot.gif between versions 1.2 and 1.3

version 1.2, 2001/12/10 15:45:54 version 1.3, 2001/12/11 13:47:36
Line 80  $htic_every = &grab('htic_every',1.0,\%I Line 80  $htic_every = &grab('htic_every',1.0,\%I
 my $image = new GD::Image($width,$height);  my $image = new GD::Image($width,$height);
   
 # allocate standard colors  # allocate standard colors
 my $white = $image->colorAllocate(255,255,255);  my @BGvalues = split /,/,&grab('bgcolor','255,255,255',\%In);
 my $black = $image->colorAllocate(  0,  0,  0);         my @FGvalues = split /,/,&grab('fgcolor','0,0,0',\%In);
   my $bgcolor = $image->colorAllocate(@BGvalues);
   my $fgcolor = $image->colorAllocate(@FGvalues);       
   
 # Draw a black frame around the picture  # Draw a fgcolor frame around the picture
 &drawtics($htic_every,$vtic_every) if (exists($In{'drawtics'}));  &drawtics($htic_every,$vtic_every) if (exists($In{'drawtics'}));
 &drawaxes($axis)                   if (exists($In{'drawaxis'}));  &drawaxes($axis)                   if (exists($In{'drawaxis'}));
 &drawframe(1)                          if (exists($In{'frame'}));  &drawframe(1)                          if (exists($In{'frame'}));
 # make the background transparent if needed (this doesn't work, at least  # make the background transparent if needed (this doesn't work, at least
 # not for gif images, don't know if it works for png)  # not for gif images, don't know if it works for png)
 $image->transparent($white)       if (exists($In{'transparent'}));  $image->transparent($bgcolor)       if (exists($In{'transparent'}));
   
 ## Take care of labels and data series  ## Take care of labels and data series
 foreach (keys %In) {  foreach (keys %In) {
     if (/^label/) {      if (/^label/) {
  my ($x,$y,$size,$text) = split/,/,$In{$_};   my ($x,$y,$size,$text) = split/,/,$In{$_};
  &drawstring($text,$x,$y,$black,$size);   &drawstring($text,$x,$y,$fgcolor,$size);
  delete ($In{$_});   delete ($In{$_});
  next;   next;
     } elsif (/^xseries/) {      } elsif (/^xseries/) {
Line 108  foreach (keys %In) { Line 110  foreach (keys %In) {
  delete ($In{$yname});   delete ($In{$yname});
  if ($#X != $#Y) {   if ($#X != $#Y) {
     &drawstring("size of $xname and $yname do not match",      &drawstring("size of $xname and $yname do not match",
        10,10,$black,"giant");         10,10,$fgcolor,"giant");
     next;      next;
  }   }
  &drawcurve(\@X,\@Y);   &drawcurve(\@X,\@Y);
Line 158  sub transformPoint{ Line 160  sub transformPoint{
 sub drawaxes{  sub drawaxes{
     ($x1,$y1) = &transformPoint($axis->{"xmin"},0,$image,$axis);      ($x1,$y1) = &transformPoint($axis->{"xmin"},0,$image,$axis);
     ($x2,$y2) = &transformPoint($axis->{"xmax"},0,$image,$axis);      ($x2,$y2) = &transformPoint($axis->{"xmax"},0,$image,$axis);
     $image->line($x1,$y1,$x2,$y2,$black);      $image->line($x1,$y1,$x2,$y2,$fgcolor);
     ($x1,$y1) = &transformPoint(0,$axis->{"ymin"},$image,$axis);      ($x1,$y1) = &transformPoint(0,$axis->{"ymin"},$image,$axis);
     ($x2,$y2) = &transformPoint(0,$axis->{"ymax"},$image,$axis);      ($x2,$y2) = &transformPoint(0,$axis->{"ymax"},$image,$axis);
     $image->line($x1,$y1,$x2,$y2,$black);      $image->line($x1,$y1,$x2,$y2,$fgcolor);
 }  }
   
 sub drawtics{  sub drawtics{
Line 177  sub drawtics{ Line 179  sub drawtics{
  my ($x2,$y2) = &transformPoint(0,$axis->{"ymin"}+$ntic*$vtic_every);   my ($x2,$y2) = &transformPoint(0,$axis->{"ymin"}+$ntic*$vtic_every);
  $x1 -= $ticwidth;   $x1 -= $ticwidth;
  $x2 += $ticwidth;   $x2 += $ticwidth;
  $image->line($x1,$y1,$x2,$y2,$black);   $image->line($x1,$y1,$x2,$y2,$fgcolor);
     }      }
     # Do tics along x-axis      # Do tics along x-axis
     for ($ntic = 0; $ntic <=int($axis->{"xlen"}/$htic_every); $ntic++){      for ($ntic = 0; $ntic <=int($axis->{"xlen"}/$htic_every); $ntic++){
Line 185  sub drawtics{ Line 187  sub drawtics{
  my ($x2,$y2) = &transformPoint( $axis->{"xmin"}+$ntic*$htic_every,0);   my ($x2,$y2) = &transformPoint( $axis->{"xmin"}+$ntic*$htic_every,0);
  $y1 -= $ticheight;   $y1 -= $ticheight;
  $y2 += $ticheight;   $y2 += $ticheight;
  $image->line($x1,$y1,$x2,$y2,$black);   $image->line($x1,$y1,$x2,$y2,$fgcolor);
     }      }
 }  }
   
Line 194  sub drawcurve{ Line 196  sub drawcurve{
     for($i=0;$i< (@$X-1);$i++) {      for($i=0;$i< (@$X-1);$i++) {
  ($x1,$y1) = &transformPoint($X->[$i  ],$Y->[$i  ]);   ($x1,$y1) = &transformPoint($X->[$i  ],$Y->[$i  ]);
  ($x2,$y2) = &transformPoint($X->[$i+1],$Y->[$i+1]);   ($x2,$y2) = &transformPoint($X->[$i+1],$Y->[$i+1]);
  $image->line($x1,$y1,$x2,$y2,$black);   $image->line($x1,$y1,$x2,$y2,$fgcolor);
     }      }
 }  }
   
Line 204  sub drawframe{ Line 206  sub drawframe{
     $xoffset = $xoffset || 1;      $xoffset = $xoffset || 1;
     $yoffset = $yoffset || $xoffset;      $yoffset = $yoffset || $xoffset;
     my ($width,$height) = $image->getBounds();      my ($width,$height) = $image->getBounds();
     $image->rectangle($xoffset-1,$yoffset-1,$width-$xoffset,$height-$yoffset,$black);      $image->rectangle($xoffset-1,$yoffset-1,$width-$xoffset,$height-$yoffset,$fgcolor);
 }  }
   
 sub drawstring{  sub drawstring{

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>