our $lmu_txtboxpadx= $lmu_marktpt * 0.335;
our $lmu_lenboxpadx= $lmu_marktpt * 0.005;
our $lmu_txtboxoff= $lmu_marklw / 2;
-our $lmu_lenboxoff= -$lmu_marklw * 1.5;
+our $lmu_lenboxoff= -$lmu_marklw * 1.0;
our $lmu_txtboxlw= 1;
our $olu_left= 10 * $scale;
my ($pt,$ad,$len);
$param= ($p0+$p1)*0.5;
$pt= &$calcfn;
- $ad= ang2deg($pt->{A}) + 90;
+ $ad= ang2deg($pt->{A});
$len= sprintf "%.0f", $lenperp * abs($p1-$p0);
ol(" gsave\n".
" $pt->{X} $pt->{Y} translate\n".
- " $ad rotate 0.75 dup scale\n".
- " 0 $lmu_lenboxh $lmu_lenboxpadx $lmu_lenboxoff".
- " ($len) label_in_box\n".
+ " $ad rotate\n".
+ " lf setfont 0 $lmu_lenboxoff moveto ($len) show\n".
" grestore\n");
}
return unless $draw =~ m/[ARS]/;
--- /dev/null
+#!/usr/bin/perl
+foreach $e (qw(M=moveto
+ L=lineto
+ N=newpath
+ C=closepath_clip
+ W=setlinewidth_stroke
+ R=grestore
+ S=gsave
+ I=setgray)) {
+ $_= $e;
+ s/^([A-Z])\=// or die;
+ $letter= $1;
+ y/_/ /;
+ $defs.= "/$letter { $_ } bind def\n";
+ $func.= "s/\\s$_\\s/\\n$letter\\n/g;\n";
+}
+eval "sub s { $func }; 1;" or die $@;
+
+while (<>) {
+ if (m/^\%\!/) {
+ print or die $!;
+ print $defs or die $!;
+ } elsif (m/^\%/) {
+ } else {
+ s/^\s+/\n/; s/$/\n/;
+ s/\s(\d{3,}\.\d{0,3})\d*\s+(\d{3,}\.\d{0,3})\d*\s+(moveto|lineto)\s/
+ "\n$1 $2 ".uc(substr($3,0,1))."\n"
+ /ge;
+ &s;
+ s/\n+/\n/g;
+ s/^\n//;
+ print or die $!
+ if m/\S/;
+ }
+}