#!/usr/bin/perl -Wall # ================================================================ # John Kerl # kerl at math dot arizona dot edu # 2006-10-11 # ================================================================ @Pxhat = (-0.25, -0.25); @Pyhat = (1, 0); @Pzhat = (0, 1); while (@ARGV && ($ARGV[0] =~ m/^-/)) { if ($ARGV[0] eq "-xy") { @Pxhat = (1, 0); @Pyhat = (0, 1); @Pzhat = (0, 0); } elsif ($ARGV[0] eq "-yz") { @Pxhat = (0, 0); @Pyhat = (1, 0); @Pzhat = (0, 1); } elsif ($ARGV[0] eq "-xz") { @Pxhat = (1, 0); @Pyhat = (0, 0); @Pzhat = (0, 1); } elsif ($ARGV[0] eq "-usual") { @Pxhat = (-0.5, -0.5); @Pyhat = (1, 0); @Pzhat = (0, 1); } else { last } shift @ARGV; } $lno = 0; while ($line = <>) { chomp $line; $line =~ s/^\s+//; $line =~ s/\s+$//; $lno++; @fields = split /\s+/, $line; $n = @fields; if ($n == 3) { ($u, $v) = do_triple($fields[0], $fields[1], $fields[2]); printf "%11.7f %11.7f\n", $u, $v; } else { die "$0: Need 3 columns; got $n at line $lno.\n"; } } # ---------------------------------------------------------------- sub do_triple { my ($x, $y, $z) = @_; my ($u, $v); $u = $Pxhat[0] * $x + $Pyhat[0] * $y + $Pzhat[0] * $z; $v = $Pxhat[1] * $x + $Pyhat[1] * $y + $Pzhat[1] * $z; return ($u, $v); }