--- loncom/homework/imageresponse.pm 2004/02/18 00:23:01 1.48 +++ loncom/homework/imageresponse.pm 2004/02/23 23:55:40 1.49 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.48 2004/02/18 00:23:01 albertel Exp $ +# $Id: imageresponse.pm,v 1.49 2004/02/23 23:55:40 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -112,13 +112,12 @@ sub prep_image { my $part=$Apache::inputtags::part; my $respid=$Apache::inputtags::response['-1']; my $id=&Apache::loncommon::get_cgi_id(); - my %x; + my (%x,$i); $x{"cgi.$id.BGIMG"}=&Apache::lonnet::escape($image); my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"}); #draws 2 xs on the image at the clicked location #one in white and then one in red on top of the one in white if (defined($x) && $x=~/\S/ && defined($y) && $y =~/\S/) { - $x{"cgi.$id.LINECOUNT"}=4; my $length = 6; my $width = 1; my $extrawidth = 2; @@ -127,18 +126,22 @@ sub prep_image { my $ymin=($y-$length); my $ymax=($y+$length); - $x{"cgi.$id.LINE0"}= - join(':',(($xmin),($ymin),($xmax),($ymax), - "FFFFFF",($width+$extrawidth))); - $x{"cgi.$id.LINE1"}= - join(':',(($xmin),($ymax),($xmax),($ymin), - "FFFFFF",($width+$extrawidth))); - $x{"cgi.$id.LINE2"}= - join(':',(($xmin),($ymin),($xmax),($ymax), - "FF0000",($width))); - $x{"cgi.$id.LINE3"}= - join(':',(($xmin),($ymax),($xmax),($ymin), - "FF0000",($width))); + $x{"cgi.$id.OBJTYPE"}.='LINE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymin),($xmax),($ymax), + "FFFFFF",($width+$extrawidth))); + $x{"cgi.$id.OBJTYPE"}.='LINE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymax),($xmax),($ymin), + "FFFFFF",($width+$extrawidth))); + $x{"cgi.$id.OBJTYPE"}.='LINE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymin),($xmax),($ymax), + "FF0000",($width))); + $x{"cgi.$id.OBJTYPE"}.='LINE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',(($xmin),($ymax),($xmax),($ymin), + "FF0000",($width))); } if ($mode eq 'answer') { my $width = 1; @@ -146,20 +149,24 @@ sub prep_image { my @areas = @{ $Apache::response::foilgroup{"$name.area"} }; foreach my $area (@areas) { if ($area=~/^rectangle:/) { + $x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; my ($x1,$y1,$x2,$y2)= ($area=~m/rectangle:\(([0-9]+),([0-9]+)\)\-\(([0-9]+),([0-9]+)\)/); - my $i=$x{"cgi.$id.BOXCOUNT"}++; - $x{"cgi.$id.BOX$i"}=join(':',($x1,$y1,$x2,$y2,"FFFFFF", + $x{"cgi.$id.OBJ$i"}=join(':',($x1,$y1,$x2,$y2,"FFFFFF", ($width+$extrawidth))); - $i=$x{"cgi.$id.BOXCOUNT"}++; - $x{"cgi.$id.BOX$i"}=join(':',($x1,$y1,$x2,$y2,"00FF00",$width)); + $x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',($x1,$y1,$x2,$y2,"00FF00",$width)); } elsif ($area=~/^polygon:(.*)/) { - my $i=$x{"cgi.$id.POLYCOUNT"}++; - $x{"cgi.$id.POLYOPT$i"}=join(':',("FFFFFF",($width+$extrawidth))); - $x{"cgi.$id.POLY$i"}=$1; - $i=$x{"cgi.$id.POLYCOUNT"}++; - $x{"cgi.$id.POLYOPT$i"}=join(':',("00FF00",$width)); - $x{"cgi.$id.POLY$i"}=$1; + $x{"cgi.$id.OBJTYPE"}.='POLYGON:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',("FFFFFF",($width+$extrawidth))); + $x{"cgi.$id.OBJEXTRA$i"}=$1; + $x{"cgi.$id.OBJTYPE"}.='POLYGON:'; + $i=$x{"cgi.$id.OBJCOUNT"}++; + $x{"cgi.$id.OBJ$i"}=join(':',("00FF00",$width)); + $x{"cgi.$id.OBJEXTRA$i"}=$1; } } }