#! /bin/csh -f # Last edited on 1999-01-31 07:41:45 by stolfi set usage = "$0 INDIR OTDIR OFILE RFILE XFILE YFILE ZFILE" # First, this script reads the five N-dimensional points OFILE RFILE # XFILE YFILE ZFILE and computes three orthogonal vectors parallel to # the affine space generated by RFILE XFILE YFILE ZFILE. These vectors # are written out as OTDIR/{X,Y,Z}.dir. The point OFILE is also copied # to OTDIR/O.pos # Then the script reads all points INDIR/POINT.pos, for all POINTs # listed in OTDIR/all.names. The script subtracts OTDIR/O.pos from # each point, then projects the result onto each of the axes # OTDIR/{X,Y,Z}.dir, storing their projections in files # OTDIR/{X,Y,Z}.projs # # Finally, the script creates one colorized scatter plot with those # points, for each pair of axes. The plots are written to # OTDIR/X-Y.gif, OTDIR/X-Z.gif, and OTDIR/Y-Z.gif. # # For this script, a point or vector in N-space is a file with N # entries of the form COORD LABEL, where COORD is a real number and # LABEL any word. The LABELs must be sorted and must match across all # point files. set recompute = 1; while ( ( $#argv > 0 ) && ( /$1 =~ /-* ) ) if ( ( $#argv > 0 ) && ( "/$1" == "/-dontRecompute" ) ) then set recompute = 0; shift else echo "bad option"; echo "usage = ${usage}"; exit 1 endif end if ( $#argv != 7) then echo "usage: ${usage}"; exit 1 endif set tmp = "/tmp/$$" set indir = "$1"; shift set otdir = "$1"; shift set oref = "$1"; shift set rref = "$1"; shift set xref = "$1"; shift set yref = "$1"; shift set zref = "$1"; shift if ( $recompute ) then echo "recomputing projections" cp -p ${oref} ${otdir}/O.pos choose-three-orthogonal-axes ${otdir} ${rref} ${xref} ${yref} ${zref} foreach axis ( X Y Z ) /bin/rm ${otdir}/${axis}.projs project-points \ ${otdir}/O.pos \ ${otdir}/${axis}.dir \ ${indir} \ `cat ${otdir}/all.names` \ > ${otdir}/${axis}.projs end else echo "reusing old projections" endif foreach fg ( X.Y X.Z Y.Z ) set f = ${fg:r} set g = ${fg:e} plot-page-data ${otdir} ${f} ${g} \ > ${otdir}/${f}-${g}.gif xv ${otdir}/${f}-${g}.gif & end