5 |
|
# |
6 |
|
# Added user-definable legend 2004/01/20 Rob Guglielmetti |
7 |
|
|
8 |
– |
set td=/tmp/fc$$ |
8 |
|
onintr quit |
9 |
+ |
set td=`mktemp -d /tmp/fc.XXXXXX` |
10 |
|
set mult=179 |
11 |
|
set label=Nits |
12 |
|
set scale=1000 |
13 |
|
set decades=0 |
14 |
– |
# set redv='1.6*v-.6' |
15 |
– |
# set grnv='if(v-.375,1.6-1.6*v,8/3*v)' |
16 |
– |
# set bluv='1-8/3*v' |
14 |
|
set redv='def_red(v)' |
15 |
|
set grnv='def_grn(v)' |
16 |
|
set bluv='def_blu(v)' |
37 |
|
case -s: |
38 |
|
shift argv |
39 |
|
set scale="$argv[1]" |
40 |
+ |
if ("$scale" =~ [aA]*) set needfile |
41 |
|
breaksw |
42 |
|
case -l: |
43 |
|
shift argv |
59 |
|
shift argv |
60 |
|
set bluv="$argv[1]" |
61 |
|
breaksw |
62 |
+ |
case -spec: |
63 |
+ |
set redv='old_red(v)' |
64 |
+ |
set grnv='old_grn(v)' |
65 |
+ |
set bluv='old_blu(v)' |
66 |
+ |
breaksw |
67 |
|
case -i: |
68 |
|
shift argv |
69 |
|
set picture="$argv[1]" |
100 |
|
endsw |
101 |
|
shift argv |
102 |
|
end |
103 |
< |
mkdir $td |
103 |
> |
if ($?needfile && "$picture" == '-') then |
104 |
> |
cat > $td/picture |
105 |
> |
set picture=$td/picture |
106 |
> |
endif |
107 |
> |
if ("$scale" =~ [aA]*) then |
108 |
> |
set LogLmax=`phisto $picture | tail -2 | sed -n '1s/ [0-9]*$//p'` |
109 |
> |
set scale=`ev "$mult/179*10^$LogLmax"` |
110 |
> |
endif |
111 |
|
cat > $td/pc0.cal <<_EOF_ |
112 |
|
PI : 3.14159265358979323846 ; |
113 |
|
scale : $scale ; |
122 |
|
frac(x) : x - floor(x); |
123 |
|
boundary(a,b) : neq(floor(ndivs*a+.5),floor(ndivs*b+.5)); |
124 |
|
|
125 |
+ |
old_red(x) = 1.6*x - .6; |
126 |
+ |
old_grn(x) = if(x-.375, 1.6-1.6*x, 8/3*x); |
127 |
+ |
old_blu(x) = 1 - 8/3*x; |
128 |
+ |
|
129 |
|
interp_arr2(i,x,f):(i+1-x)*f(i)+(x-i)*f(i+1); |
130 |
|
interp_arr(x,f):if(x-1,if(f(0)-x,interp_arr2(floor(x),x,f),f(f(0))),f(1)); |
131 |
|
def_redp(i):select(i,0.18848,0.05468174, |
186 |
|
else if ("$cpict" == "$picture") then |
187 |
|
set cpict= |
188 |
|
endif |
175 |
– |
if ($?needfile && "$picture" == '-') then |
176 |
– |
cat > $td/picture |
177 |
– |
set picture=$td/picture |
178 |
– |
endif |
189 |
|
if ("$decades" != "0") then |
190 |
|
set pc1args=($pc1args -e "map(x)=if(x-10^-$decades,log10(x)/$decades+1,0)") |
191 |
|
set imap="imap(y)=10^((y-1)*$decades)" |
195 |
|
if ( $legwidth > 20 && $legheight > 40 ) then |
196 |
|
pcomb $pc0args -e 'v=(y+.5)/yres;vleft=v;vright=v' \ |
197 |
|
-e 'vbelow=(y-.5)/yres;vabove=(y+1.5)/yres' \ |
198 |
< |
-x $legwidth -y $legheight > $td/scol.pic |
198 |
> |
-x $legwidth -y $legheight > $td/scol.hdr |
199 |
|
( echo "$label"; cnt $ndivs \ |
200 |
|
| rcalc -e '$1='"($scale)*imap(($ndivs-.5-"'$1'")/$ndivs)" \ |
201 |
|
-e "$imap" | sed -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/' ) \ |
202 |
|
| psign -s -.15 -cf 1 1 1 -cb 0 0 0 \ |
203 |
< |
-h `ev "floor($legheight/$ndivs+.5)"` > $td/slab.pic |
203 |
> |
-h `ev "floor($legheight/$ndivs+.5)"` > $td/slab.hdr |
204 |
|
else |
205 |
|
set legwidth=0 |
206 |
|
set legheight=0 |
207 |
< |
(echo "" ; echo "-Y 1 +X 1" ; echo "aaa" ) > $td/scol.pic |
208 |
< |
cp $td/scol.pic $td/slab.pic |
207 |
> |
(echo "" ; echo "-Y 1 +X 1" ; echo "aaa" ) > $td/scol.hdr |
208 |
> |
cp $td/scol.hdr $td/slab.hdr |
209 |
|
endif |
210 |
|
if ( $?doextrem ) then |
211 |
|
pextrem -o $picture > $td/extrema |
213 |
|
set minval=`rcalc -e '$1=($3*.27+$4*.67+$5*.06)*'"$mult" $td/extrema | sed -e 2d -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/'` |
214 |
|
set maxpos=`sed 1d $td/extrema | rcalc -e '$2=$2;$1=$1+'"$legwidth"` |
215 |
|
set maxval=`rcalc -e '$1=($3*.27+$4*.67+$5*.06)*'"$mult" $td/extrema | sed -e 1d -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/'` |
216 |
< |
psign -s -.15 -a 2 -h 16 $minval > $td/minv.pic |
217 |
< |
psign -s -.15 -a 2 -h 16 $maxval > $td/maxv.pic |
216 |
> |
psign -s -.15 -a 2 -h 16 $minval > $td/minv.hdr |
217 |
> |
psign -s -.15 -a 2 -h 16 $maxval > $td/maxv.hdr |
218 |
|
pcomb $pc0args $pc1args $picture $cpict \ |
219 |
< |
| pcompos $td/scol.pic 0 0 \ |
220 |
< |
+t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.pic" \ |
221 |
< |
`ev 2 $loff-1` -t .5 $td/slab.pic 0 $loff \ |
222 |
< |
- $legwidth 0 $td/minv.pic $minpos $td/maxv.pic $maxpos |
219 |
> |
| pcompos $td/scol.hdr 0 0 \ |
220 |
> |
+t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.hdr" \ |
221 |
> |
`ev 2 $loff-1` -t .5 $td/slab.hdr 0 $loff \ |
222 |
> |
- $legwidth 0 $td/minv.hdr $minpos $td/maxv.hdr $maxpos |
223 |
|
else |
224 |
|
pcomb $pc0args $pc1args $picture $cpict \ |
225 |
< |
| pcompos $td/scol.pic 0 0 \ |
226 |
< |
+t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.pic" \ |
227 |
< |
`ev 2 $loff-1` -t .5 $td/slab.pic 0 $loff \ |
225 |
> |
| pcompos $td/scol.hdr 0 0 \ |
226 |
> |
+t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.hdr" \ |
227 |
> |
`ev 2 $loff-1` -t .5 $td/slab.hdr 0 $loff \ |
228 |
|
- $legwidth 0 |
229 |
|
endif |
230 |
|
quit: |