Diff for /loncom/homework/randomlabel.pm between versions 1.61 and 1.62

version 1.61, 2004/07/02 08:09:49 version 1.62, 2004/11/13 19:39:45
Line 144  sub end_randomlabel { Line 144  sub end_randomlabel {
  my $width=&Apache::lonxml::get_param('width',$parstack,$safeeval);   my $width=&Apache::lonxml::get_param('width',$parstack,$safeeval);
  my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1));   my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1));
         if (!$texwidth) { $texwidth=90; }          if (!$texwidth) { $texwidth=90; }
    # what if width is undefined?
  my $howtoskipback = $texwidth*$height/$width;   my $howtoskipback = $texwidth*$height/$width;
  $result.= ' \vskip -'.$howtoskipback.' mm }  \\\\ ';   $result.= ' \vskip -'.$howtoskipback.' mm }  \\\\ ';
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
Line 316  sub end_labelgroup { Line 317  sub end_labelgroup {
  my $wheight=&Apache::lonxml::get_param('height',$parstack,$safeeval,-2);   my $wheight=&Apache::lonxml::get_param('height',$parstack,$safeeval,-2);
  my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,-2,1));   my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,-2,1));
  if (!$texwidth) { $texwidth=90; }   if (!$texwidth) { $texwidth=90; }
  my $TX1=0;   my $texheight=$texwidth*($wheight/$wwidth);
  my $TY1=$texwidth*($wheight/$wwidth);  
  my $TX2=$texwidth;  
  my $TY2=0;  
   
   
  my $slopex=($wwidth-$WX1)/($TX2-$TX1);  
  my $slopey=($wheight-$WY1)/($TY2-($TY1-1.0));  
  my $cstx=$wwidth-$slopex*($TX2);  
  my $csty=$wheight-$slopey*($TY2);  
   
  my @idx_arr = (0 .. $#Apache::randomlabel::label_arr);   my @idx_arr = (0 .. $#Apache::randomlabel::label_arr);
  &Apache::structuretags::shuffle(\@idx_arr);   &Apache::structuretags::shuffle(\@idx_arr);
   
Line 334  sub end_labelgroup { Line 326  sub end_labelgroup {
  for(my $i=0;$i <= $#Apache::randomlabel::label_arr; $i++) {   for(my $i=0;$i <= $#Apache::randomlabel::label_arr; $i++) {
     my $label = "$Apache::randomlabel::label_arr[ $idx_arr[$i] ]";      my $label = "$Apache::randomlabel::label_arr[ $idx_arr[$i] ]";
     my $x = $Apache::randomlabel::xcoord[$i];      my $x = $Apache::randomlabel::xcoord[$i];
     my $y = $Apache::randomlabel::ycoord[$i];      # FIXME the 3.5 here is the 'height' of the letter in TeX
       my $y = $Apache::randomlabel::ycoord[$i]-3.5;
     my $value = $Apache::randomlabel::value[$i];      my $value = $Apache::randomlabel::value[$i];
     #x latex coordinate      #x latex coordinate
     my $tcX=($x)*($texwidth/$wwidth);      my $tcX=($x)*($texwidth/$wwidth);
     #y latex coordinate      #y latex coordinate
             #      my $ratio=($wwidth > 0 ? $wheight/$wwidth : 1 );              #      my $ratio=($wwidth > 0 ? $wheight/$wwidth : 1 );
     my $tcY=$TY1-$y*($TY1/$wheight);      my $tcY=$texheight-$y*($texheight/$wheight);
     $tcX=sprintf('%.2f',$tcX);      $tcX=sprintf('%.2f',$tcX);
     $tcY=sprintf('%.2f',$tcY);      $tcY=sprintf('%.2f',$tcY);
     $result.='\put('.$tcX.','.$tcY.'){\normalsize \bf '.$label.'}'."\n";      $result.='\put('.$tcX.','.$tcY.'){\normalsize \bf '.$label.'}'."\n";

Removed from v.1.61  
changed lines
  Added in v.1.62


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