1#!/usr/bin/env bash 2# 3# Tests gmt project in Cartesian manipulations 4 5ps=cartesian.ps 6 7cat << EOF > pts.tt 81.7 1 9-1 1.5 10-1.5 -1.3 111.5 -0.5 12EOF 13cat << EOF >> axes.tt 14> x-axis 15-3 0 163 0 17> y-axis 180 -3 190 3 20EOF 21cx=0 22cy=0 23 24makeproj () { 25# Expects azimuth x y 26echo "$2 $3" | gmt project -N -C$cx/$cy -A$1 -Fpqrs 27} 28 29makeaxis () { 30# Expects azimuth file 31gmt project -N -C$cx/$cy -A-$1 -Fpq $2 32} 33 34gmt set PS_CHAR_ENCODING ISOLatin1+ 35 36gmt pstext -R0/8.5/0/11 -Jx1i -F+jCB -P -Xa0 -Ya0 -K > $ps \ 37<<< "4.25 10.25 [x,y] (black dot). 2nd pair is (p,q) and third is (r,s) [plotted as red dot]" 38ypos=1.25 39By=Sn 40for az in 30 135 200 290 ; do 41 xpos=0.75 42 az90=`gmt math -Q $az 90 ADD =` 43 Bx=We 44 while read x y; do 45 makeaxis $az axes.tt > tt.a 46 makeproj $az $x $y > tt.d 47 gmt psbasemap -R-2/2/-2/2 -JX1.5i -B2g1 -B${Bx}${By} -O -K -Xa$xpos -Ya$ypos >> $ps 48 echo "$cx $cy 0 $az" | gmt psxy -R -J -O -K -SW0.2i -W0.25p -Xa$xpos -Ya$ypos >> $ps 49 gmt psxy -R -J -O -K -W1p,red -Xa$xpos -Ya$ypos tt.a >> $ps 50 echo "$cx $cy $az 0.75" | gmt psxy -R -J -O -K -SV0.15i+e+a60 -W0.5p -Gred -Xa$xpos -Ya$ypos >> $ps 51 echo "$cx $cy $az90 0.75" | gmt psxy -R -J -O -K -SV0.15i+e+a60 -W0.5p -Gred -Xa$xpos -Ya$ypos >> $ps 52 gmt project -A$az90 -C$cx/$cy -N -G1 -L1.75/1.755 > tt.x 53 gmt project -A$az -C$cx/$cy -N -G1 -L1.75/1.755 > tt.y 54 (head -n 1 tt.x) | $AWK '{printf "%s %s P", $1, $2}' | gmt pstext -R -J -F+f7p+a$az -O -K -A -Xa$xpos -Ya$ypos >> $ps 55 (head -n 1 tt.y) | $AWK '{printf "%s %s Q", $1, $2}' | gmt pstext -R -J -F+f7p+a$az90 -O -K -A -Xa$xpos -Ya$ypos >> $ps 56 echo "$cx $cy 0 0.75" | gmt psxy -R -J -O -K -SV0.15i+e+a60 -W0.5p -Gblack -Xa$xpos -Ya$ypos >> $ps 57 echo "$cx $cy 90 0.75" | gmt psxy -R -J -O -K -SV0.15i+e+a60 -W0.5p -Gblack -Xa$xpos -Ya$ypos >> $ps 58 gmt pstext -R -J -O -K -F+f7p,white -Xa$xpos -Ya$ypos >> $ps <<< "1.75 0 x" 59 gmt pstext -R -J -O -K -F+f7p,white -Xa$xpos -Ya$ypos >> $ps <<< "0 1.8 y" 60 (echo "$x $y"; cut -f3,4 tt.d) | gmt psxy -R -J -O -K -W0.5p,- -Xa$xpos -Ya$ypos >> $ps 61 echo "$x $y" | gmt psxy -R -J -O -K -Xa$xpos -Ya$ypos -Sc0.075i -Gblack >> $ps 62 cut -f3,4 tt.d | gmt psxy -R -J -O -K -Xa$xpos -Ya$ypos -Sc0.075i -W0.5p,black -Gred >> $ps 63 printf "0 2 [%s,%s] (%.2f,%.2f) (%.2f,%.2f)\n" $x $y `cat tt.d` | \ 64 gmt pstext -R -J -F+f8p+jCB -O -K -Xa$xpos -Ya$ypos -N -D0/0.2i >> $ps 65 gmt pstext -R -J -O -K -Xa$xpos -Ya$ypos -N -D-0.05i/0.05i -Gwhite -W -F+f8p+jBR >> $ps <<< "2 -2 @~a@~ = $az@." 66 xpos=`gmt math -Q $xpos 1.9 ADD =` 67 Bx=we 68 done < pts.tt 69 ypos=`gmt math -Q $ypos 2.25 ADD =` 70 By=sn 71done 72gmt psxy -R -J -O -T >> $ps 73 74