--- loncom/homework/randomlylabel.pm 2024/04/04 17:33:01 1.33 +++ loncom/homework/randomlylabel.pm 2024/04/05 02:43:25 1.35 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # randomlabel.png: composite together text and images into 1 image # -# $Id: randomlylabel.pm,v 1.33 2024/04/04 17:33:01 raeburn Exp $ +# $Id: randomlylabel.pm,v 1.35 2024/04/05 02:43:25 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -129,7 +129,7 @@ the start and extant of the region in fi =item LABEL -x:y:text:font:color:direction +x:y:text:font:color:direction:rotation =over 4 @@ -146,6 +146,12 @@ installed TTF font and point size either B or B +=item rotation + +number of degrees to rotate the text, relative to the horizontal. +only used if font attribute is set to a freetype font (e.g., helvetica 12), +and in that case, if set to a valid value, overrides value set for direction. + =back =item POLYGON @@ -420,7 +426,7 @@ sub handler { $image->copyResized($subimage,$x,$y,$srcX,$srcY,$destW,$destH, $srcW,$srcH); } elsif ($type eq 'LABEL') { - my ($x,$y,$text,$font,$color,$direction)= + my ($x,$y,$text,$font,$color,$direction,$rotation)= split(':',$env{$prefix."OBJ$i"}); $text=&unescape($text); my $imcolor=&get_color_from_hexstring($image,$color); @@ -451,7 +457,9 @@ sub handler { } elsif ($type eq 'ttf') { my ($fontname,$ptsize)=split(/\s+/,$font); my $angle = 0; - if ($direction eq 'vertical') { + if ($rotation =~ /^(\-|\+|)\d+(|\.\d*)$/) { + $angle = Math::Trig::deg2rad($rotation); + } elsif ($direction eq 'vertical') { $angle = Math::Trig::deg2rad(90); } elsif ($direction eq 'horizontal') { $angle = 0;